首页 > 解决方案 > 如何使任何方法在 Python 中充当 __init__?

问题描述

当我运行类似的东西时:

class Compliment():
   def __init__(self):
      self.Hello = "HI"
   def Bye(self):
      self.bye = "BYE"
print(Compliment().Hello)
print(Compliment().bye)

我明白了:`

AttributeError: 'Compliment' object has no attribute 'bye'
HI

但是我想在其他方法中创建属性,并为此目的使方法“init”无用,这可能吗?如果是,我怎么能做这样的事情?

标签: pythonmethods

解决方案


您可以在任何地方创建属性。Bye您的代码的错误是您在尝试打印在该方法中创建的属性之前没有调用方法。相反,尝试

prop = Compliment()
print(prop.Hello)
prop.Bye()
print(prop.bye)

回答您的直接问题:不,您不能__init__对创建属性无用。您不必那样使用它,但不能禁用它:__init__是一种语言定义的方法。


推荐阅读