【发布时间】:2012-08-15 06:22:36
【问题描述】:
在python中,有没有办法防止在定义对象后添加新的类变量?
例如:
class foo:
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
bar = foo()
try:
bar.d = 4
except Exception, e:
print "I want this to always print"
或者,有没有办法计算对象中变量的数量?
class foo:
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
def count(self):
...
bar = foo()
if bar.count() == 3:
print "I want this to always print"
我想到的唯一方法是使用字典或列表:
class foo:
def __int__(self):
self.dict = {'foo':1, 'bar':2}
self.len = 2
def chk():
return self.len == len(self.list)
但是,这样做对于 python 来说感觉相当麻烦。 (obj.dict['foo'])。如果可能的话,我更喜欢 obj.foo。
我想要这样,这样当我打算更改现有变量时,我就不会意外地声明一个变量。
f = foo()
f.somename = 3
...
f.simename = 4 #this is a typo
if f.somename == 3:
solve_everything()
【问题讨论】:
-
感谢大家的及时和有帮助的回复。
标签: python class variables count