Python 对象创建

6 投票
3 回答
17262 浏览
提问于 2025-04-15 13:04

我刚刚接触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()

撰写回答