我正在使用PyCharm 5.0.4 Comunity Edition和Python 2.7。
我的代码在carInput.py:
文件中如下所示class carInput():
def __init__(self):
self.string = 'hi'
我在控制台中输入以下内容:
>>> car = carInput.carInput()
>>> car
<carInput.carInput instance at 0x00000000027F3D08>
>>> car.string
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: carInput instance has no attribute 'string'
我想到在实例化 carInput 对象时,将始终执行 init 方法,并声明变量 string 。但是,当我尝试从控制台访问对象的字符串变量时,我被告知我的对象没有这样的属性。我误解了什么?
答案 0 :(得分:1)
尝试将其更改为此选项并运行:
class carInput:
def __init__(self):
self.string = 'hi'
car = carInput()
print car.string
结果:
[x@localhost 36024276]$ python car.py
hi
原因是如何定义类。我的文件名为car,因此您需要为您运行python carInput.py。
答案 1 :(得分:1)
由于您使用的是python 2.X,因此需要注意new-style and old-style类之间的区别。
class OldStyle:
pass
class NewStyle(object):
pass
原则上,您可以使用两种类型的类。但是,新的样式类应始终是首选!使用它们没有缺点,只有优点。高级代码通常会隐式地假设类是新式的!
在您的情况下,您实际上是在定义一个旧式的类。
class carInput(): # no object inside ()
pass