Python 对象创建
我刚刚接触Python,正在努力学习。
我想实现的目标是:创建一个汽车类,这个类的构造函数会检查输入,以便把对象的车名设置为这个输入。我试着用Java的思路来做,但好像失败了 :)
class Car():
carName = "" #how can I define a non assigned variable anyway like "String carName;" in java
def __self__(self,input):
self.carName = input
def showName():
print carName
a = Car("bmw")
a.showName()
3 个回答
1
这不对!
class Car():
carName = "" #how can I define a non assigned variable anyway like "String carName;" in java
def __self__(self,input):
self.carName = input
第一个 carName 是一个 类变量,就像 C++ 里的静态成员一样。
第二个 carName(self.carName)是一个 实例变量。
如果你想通过构造函数来设置 类变量,你需要这样做:
class Car():
carName = "" #how can I define a non assigned variable anyway like "String carName;" in java
def __self__(self,input):
Car.carName = input
2
你没有定义一个变量,而是使用了init和self。就像这样:
class Car(Object):
def __init__(self,input):
self.carName = input
def showName(self):
print self.carName
a = Car("bmw")
a.showName()
14
这是关于从对象派生的新式类的内容。
在创建新实例的时候,要用__init__
来初始化,而不是用__self__
。
__main__
也是很有用的。
class Car(object):
def __init__(self,input):
self.carName = input
def showName(self):
print self.carName
def main():
a = Car("bmw")
a.showName()
if __name__ == "__main__":
main()