这个类应该接受Keys
属性的参数,但是当我尝试MyUserInstance.Keys('foo')
时,它不起作用。而是说TypeError: Keys() takes exactly 2 arguments (1 given)
。怎么错了?在
# User
class User:
def __init__(self,
Username = 'New User',
**kwargs):
self.Username = Username
self.__dict__.update(kwargs)
@property
def Keys(self,collection):
try:
return {k:1 for k in db.UserPreferences.find_one({
'Type':'VisibleKeys',
'UserID':self._id,
'CollectionName':collection})['Keys']}
except:
return None
def __repr__(self):
return '<User: "%s">' % self.Username
键是类实例的绑定属性。这意味着你必须先有一个实例。在
同时去掉集合参数。这是一个吸引人的东西。只能在setter上定义arg。在
看起来这真的应该只是一种方法。所以,事实上,摆脱房产装饰师,使用:用户密钥(“foo”)
您可以在这里阅读如何定义getter、setter和deleter:http://docs.python.org/library/functions.html#property
此外,python约定通常会为类名保留大写。是的用户密钥在
相关问题 更多 >
编程相关推荐