Создание объекта Python

Я новичок в мире Python и пытаюсь его изучить.

Это то, чего я пытаюсь достичь: я хочу создать класс Car, его конструктор проверяет вход для установки объекта carName в качестве входного. Я пытаюсь сделать это, используя 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()

Ответ 1

полученный из объекта для класс нового стиля
используйте __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()

Ответ 2

Вы не определяете переменную, и используете init и self. Вот так:

class Car(Object):
    def __init__(self,input):
        self.carName = input

    def showName(self):
        print self.carName

a = Car("bmw")
a.showName()

Ответ 3

это неверно!

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 является классом Variable как статический член в С++

второе имя 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