Невозможно получить вывод из классов в Python - PullRequest
0 голосов
/ 20 апреля 2020

[Код, который я использую] Я пытаюсь выучить классы в Python и пытался запустить свою первую программу. Я не могу получить результат от программы. После запуска программы я просто получаю сообщение RESTART C: / Users ......

#Class example

class Person:
    '''
    The class person describes a person
    '''
    count =0 # class variable that keeps a count of Person instances
    def __init__(self, name, DOB, address): # Constructor i.e. initializer
        self.name=name
        self.DOB=DOB
        self.address=address
        Person.count+=1    # Increase person count by 1 for every instance created

def getName(self):
    '''
    Objective: Retrieve the name of the person
    Input: Self (Implicit Parameter), object of type Person
    Output: Return Value is name-string
    '''
    return self.name

def getDOB(self):
    return self.DOB

def getAddress(self):
    return self.address

def setName (self, name):
    self.name=name

def setDOB(self, DOB):
    self.DOB=DOB

def setAddress(self, address):
    self.address=address

def getCount (self):
    return Person.count

def __str__(self):
    '''
    Objective: Return string representation of object of type Person
    Input: Self (implicit Parameter), object of type Person
    Return: String
    '''
    return 'Name: '+self.name+'DOB: '+self.DOB+'Address: '+self.address


p1= Person('Dave', '24-10-1998', 'NJ, USA') 

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Ваши методы (функции в классе) - не имеют отступов ...

Мы ожидаем, что класс будет выглядеть как

class Person:
    def setName (self, name):
        self.name=name

    def setDOB(self, DOB):
        self.DOB=DOB

   def setAddress(self, address):
        self.address=address

   def getCount (self):
        return Person.count

Тогда

p1= Person('Dave', '24-10-1998', 'NJ, USA')
print(str(p1))

выглядит хорошо

0 голосов
/ 20 апреля 2020

(при условии правильного отступа в вашем коде) вам нужно вызвать методы для объекта person. Предположим, что вы хотите вывести имя человека, вы можете использовать метод, который вы определили следующим образом:

print(p1.getName())

однако вы можете сделать это без такого метода, как:

print(p1.name)

you теперь можно выводить другие значения аналогично.

если вы хотите получить всю информацию (используя __str__), вы можете сделать:

print(str(p1))

здесь вам не нужно p1.__str__ как метод магии / подземелья.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...