我是新手,发现很难掌握python中Class的语法。我有 C/C++、java 和 objective-c 的背景。我在 python 中注意到的一个非常大的区别是你没有在类中明确声明“数据成员”,你只是随机添加它们?这会导致相当大的困惑。
假设我有课
class MyClass:
def __int__(self, a, b):
self.a = a
self.b = b
然后当我启动对象时。
myobject = MyClass(10,10)
一段时间后,出于某种原因,我开始知道我需要这个类中的另一个参数,但我不想使用构造函数启动它,因为它会根据某些特定条件由另一个函数启动,所以总的来说困惑的代码只会让变量真正诞生。当我在调试或审查代码时出于某些其他原因检查代码时是否会造成混淆?
请您参考如下方法:
简而言之,是。
你是对的。 Python 允许您随时从对象中随意添加(和删除!)成员。允许它执行其他函数不能执行的任何操作的构造函数没有什么特别之处。
如果你想确保你的类的所有实例在任何时候都具有相同的成员,那么一定要在构造函数中分配它们,使用像 None 这样的标记值还没有有意义的值,并避免在构造函数之外添加新成员。
如何操作对象完全取决于您,如果您想以静态方式操作,那很好,或者如果您想利用在任意时间添加和删除成员的功能,那也很好. Python 本身不强加 (m) 任何规则。
