我正在编写一个类来将用户插入数据库,在我做得太深入之前,我只想确保我的OO方法是干净的:
class User(object):
def setName(self,name):
#Do sanity checks on name
self._name = name
def setPassword(self,password):
#Check password length > 6 characters
#Encrypt to md5
self._password = password
def commit(self):
#Commit to database
>>u = User()
>>u.setName('Jason Martinez')
>>u.setPassword('linebreak')
>>u.commit()
这是正确的方法吗? 我应该在上面声明类变量吗? 我应该在所有的类变量前面使用一个使它们私有化吗?
谢谢你的帮助。
一般来说是正确的,不过你可以用properties来清理它。
还有一个方便的基于decorator的语法,文档也解释了这一点。
使用单个属性不会使您的属性成为私有属性:这是一个约定,告诉您它是一个内部属性,在正常情况下不应该被外部代码访问。使用您的代码也意味着密码和名称是只读的。
我强烈建议为您的类使用初始化器,它将初始化您的属性,即使是一个默认值,如无:它将使您提交方法中的事情更容易,您不必检查是否存在名称和密码属性(使用hasattr)。
在代码上使用Pylint。
代码中没有类变量,只有实例属性。使用properties而不是访问器。并在初始值设定项中创建实例属性,最好是从传入的值中创建:
相关问题 更多 >
编程相关推荐