class A:
def __init__(self):
self.a = 1
ev = A()
ev.b = 2
print ev.b
ev.b
不存在类里面,请问为什么还可以这样写?请问这在python里面叫做什么呢?
class A:
def __init__(self):
self.a = 1
ev = A()
ev.b = 2
print ev.b
ev.b
不存在类里面,请问为什么还可以这样写?请问这在python里面叫做什么呢?
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
python魔法函数
貌似因为在执行ev.b = 2 的时候调用了__setattr__(),然後把b:2 存进 a.__dict__里面去了。
然后可以调用a.__dict__ 可以看到一个字典里面存储了a的属性。
可以去搜索__setattr__ 了解它。
下面给个例子:
class A:
a=A()
a.b=6
print(a.__dict__)
输出{“a”=2,“b”=12}
对了在补充点,其实self.a=1
跟后面 a.b=6 是一样的操作。
因为实例化的时候先new了实例,也就是后面的self或者a。 然后才__init__初始化。
所以问为什么可以a.b=value这样,是对python类的实例化的误解