Python中能否用点运算符为类附加类/函数?相关机制及None解析
Python动态属性与示例代码解析
一、Python中类似JS对象挂载的实现与名称
在JavaScript里将一个对象挂载到另一个对象上的操作,对应到Python中就是动态给类或对象添加属性。Python作为动态编程语言,允许在运行时直接给类(或类的实例)绑定任意类型的属性,包括类、函数、普通对象等。
比如你提供的示例代码中:
# 将类B挂载为类A的属性 A.holder_for_b = B # 将函数挂载为类A的方法 A.some_method = i_am_a_function
这种操作没有特定的专属术语,通常被称为「动态添加属性」或者「给类/对象绑定属性」。
二、示例中输出None的含义
看代码里的print(A.some_method('foo')):
- 调用
A.some_method('foo')时,实际执行的是函数i_am_a_function('foo'),这个函数内部会打印"I am function"和"foo"; - 但
i_am_a_function没有编写return语句,在Python中,所有没有显式返回值的函数,默认都会返回None; - 最后
print()函数会把这个函数调用的返回值打印出来,所以输出结果里会出现None。
内容的提问来源于stack exchange,提问作者Masoud Kameli
相关产品推荐
相关产品推荐

