【发布时间】:2021-10-02 22:39:49
【问题描述】:
可以将类实例变量设置为等于在函数内创建的另一个类的类实例变量吗?在调用func() 之后,下面的代码似乎可以工作(a.var = [5, []]),但我想确保我没有遗漏任何东西:
def func():
class C:
def __init__(self):
self.var = [[] for _ in np.arange(2)]
c = C()
c.var[0] = 5
a.var = c.var
class A:
def __init__(self):
self.id = 0
self.var = [[] for _ in np.arange(2)]
if __name__ == "__main__":
a = A()
func()
【问题讨论】:
-
如果名称
a在给定范围内可用且可访问,则分配给绑定到名称(即a.var)的属性将起作用。func可以看到其外部范围的a,因为它在任何地方都没有本地定义的a(即范围内没有a = ...语句)。更多相关信息请参考this thread和this thread。
标签: python function class instance-variables