通常,这被称为“重构”.如果你寻找它,那里有很多优秀的
Python和通用计算机科学文献.
根据您所描述的内容,您需要立即停止使用存储在类中的数据并开始使用成员函数进行访问.
class A(object):
def __init__(self, value):
self.value = value
a = A(1)
print a.value
a.value = 5
print a.value
看看我如何直接修改值?这可能导致代码中的各种假设.使用方法检索值并进行更改最好.注意,没有头脑的getFoo / setFoo也不好.尝试让你的方法暴露行为而不是扭曲的旋钮.
class A(object):
def __init__(self, value):
self.value = value
def is_safe(self):
if value > 10:
return False
return True
def increase_value(self, increment):
if increment <= 0:
raise ValueError("only positive increments are allowed")
self.value += increment
看看逻辑是如何自包含的?我们从不希望A的实例变小,所以我们只允许增量并命名函数增加来指示这一点. setValue不告诉什么或为什么.
对于模块和子模块,将事物组合在一起. “匹配”基于您自己的代码需求.所有的用户功能?所有数据库功能?将内容放入模块中可以使用相同的公开API插入不同的模块.从SQL DB或本地文本文件中考虑身份验证.