【发布时间】:2017-05-08 12:25:58
【问题描述】:
我有一个名为 settings 的 python 类,它包括一个 __init__ 方法,用于设置一些值,如下所示:
class settings:
global appkey
global appversion
def __init__(self):
appkey = 1
appversion = 1
applicationname = "app1"
applicationfile = "app.txt"
在另一个 python 文件(主脚本)中,我通过以下代码定义了我的设置类的一个实例:
import settings
from settings import settings
set = settings()
print set.appversion
print set.appkey
print set.applicationfile
但是当我运行我的主要 python 脚本时,我得到了这个错误:
AttributeError: settings instance has no attribute 'appversion'
我希望当我在这里定义一个类的实例时,设置类,它的 init 函数将被触发,我将为其属性设置值。
【问题讨论】:
-
你应该写
self.appkey = 1等 -
with self 一切正常!
-
另一个建议是在任何类变量上使用任何前缀
_。因此,在init中,您可能希望像这样初始化变量:self._appkey = 1。它确实对您没有太大的影响,但是如果您以后遇到问题,它可能会帮助人们理解您的代码,因为下划线_是类变量的标志。 :) -
self._ 是个好主意。谢谢@geostocker
标签: python class attributes initialization