python - 如何使任何方法在 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”无用,这可能吗?如果是,我怎么能做这样的事情?
解决方案
您可以在任何地方创建属性。Bye
您的代码的错误是您在尝试打印仅在该方法中创建的属性之前没有调用方法。相反,尝试
prop = Compliment()
print(prop.Hello)
prop.Bye()
print(prop.bye)
回答您的直接问题:不,您不能__init__
对创建属性无用。您不必那样使用它,但不能禁用它:__init__
是一种语言定义的方法。
推荐阅读
- javascript - 在 React 中条件渲染和包装两个或多个具有相同类型的元素
- symfony - PhpStorm Symfony 路由丢失
- elasticsearch-plugin - elasticsearch-plugin list 命令中的 java.nio.file.FileSystemException
- django - 如何自定义和翻译 django 的 PasswordChangeForm 中的错误消息?
- r - `[<-.data.frame`(`*tmp*`, i, value = NULL) 中的错误:新列将在现有列之后留下孔
- ios - UIColor(命名:“colorname”)的持续问题?
- html - 如何定义类型
- spss - SPSS - 如何重新调整x轴
- arrays - 有没有一种优雅的方法来对 Julia 中的静态数组向量中的列进行求和?
- jupyter-notebook - POST 中缺少“_xsrf”参数 - 需要永久修复 - 其他建议的解决方案不起作用