马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class Const:
l = []
#def __init__(self):
#self.l = [] 当采用#部分时候程序会报错为AttributeError:'Const' object has no attribute 'l'
def __setattr__(self,name,value):
if name.isupper():
if name not in self.l:
self.l.append(name)
super().__setattr__(name,value)
else:
print('常量无法改变!')
else:
print('常量名必须由大写字母组成!')
属性l的两种方式为什么会差生这样的差别,是因为__setattr__()函数和其他魔法方法不一样吗?比如class A:
def __init__(self):
self.l = []
def f(self):
self.l.append('FishC')
return self.l
此时,就不会出现上述的报错信息。
|