有一段代码:
class C():
a=1
def f(self):
print "f func"
a=C()
print a.a
a.f()
>>> 1
>>> f func
Run Code Online (Sandbox Code Playgroud)
当我试图得到a.__dict__or时vars(a),它告诉我只是{}。但
a.b=123
print a.__dict__
>>> {'b': 123}
Run Code Online (Sandbox Code Playgroud)
我不明白,为什么会这样。
我有一系列函数,例如:
>>> def f():
... print "f"
...
>>> def g():
... print "g"
...
>>> c=[f,g]
Run Code Online (Sandbox Code Playgroud)
然后我尝试创建两个lambda函数:
>>> i=0
>>> x=lambda: c[i]()
>>> i+=1
>>> y=lambda: c[i]()
Run Code Online (Sandbox Code Playgroud)
然后,打电话给他们:
>>> x()
g
>>> y()
g
Run Code Online (Sandbox Code Playgroud)
为什么lambda中的c [i]是一样的?