Syntaktická chyba během tisku, třídy, vlastností

0

Otázka

Byla vytvořena třída, která popisuje osobu (jméno, adresa atd.). .To musí být tisk všechny vlastnosti, které kódu je v následujících řádcích

class Person:
    personNo=0
    def _init_(unit,first_name,last_name,age,address):
            unit.personsfirstname=first_name
            unit.lastname=last_name
            unit.personsage=age
            unit.address=address
            unit.personNo+=1
    def ShowInfo(unit):
            print("Ονομα: "+unit.personsfirstname+ "Επιθετο: "+unit.lastname+ "Ηλικια: "+unit.personsage+ "Οδος: "+unit.address=address)#The problem is here
            


person1=Person("George","Stefanopoulos","55","Alpha street 33")
person2=Person("Μαρια","Πενταγιωτισα","25","Παπαλαμπρενας 28")

Takže, když je kód spuštěn je objevila chyba: výraz nemůže obsahovat přiřazení možná jste měl na mysli "=="? .Problém je objevil, kde se nachází vědomí. Je třeba poznamenat, že tento kód je založen další příklad kódu, který funguje perfektně

class python
2021-11-23 13:41:46
2

Nejlepší odpověď

0

Za prvé, konstruktor by měl být __init__ a ne _init_
Za druhé, máte = uvnitř print funkce, kde se pokusíte vytvořit výstupní řetězec.
Navrhuji použít __str__ metoda:

class Person:
    personNo=0
    def __init__(self,first_name,last_name,age,address):
            self.personsfirstname=first_name
            self.lastname=last_name
            self.personsage=age
            self.address=address
            self.personNo+=1

    def __str__(self):
            s = "Ονομα: "+self.personsfirstname+ " Επιθετο: "+self.lastname+ " Ηλικια: "+self.personsage+ " Οδος: "+self.address
            return s
            


person1=Person("George","Stefanopoulos","55","Alpha street 33")
person2=Person("Μαρια","Πενταγιωτισα","25","Παπαλαμπρενας 28")

# thanks to __str__ method, you can do:
print(person1)
Ονομα: George Επιθετο: Stefanopoulos Ηλικια: 55Ο δος: Alpha street 33
print(person2)
Ονομα: Μαρια Επιθετο: Πενταγιωτισα Ηλικια: 25Οδος: Παπαλαμπρενας 28

2021-11-23 15:42:45
0

= slouží k přiřazení hodnoty.

Předpokládejme, že chcete zobrazit adresu jako jste to udělali pro jméno, zkus to takhle:

class Person:
    personNo=0
    def __init__(unit,first_name,last_name,age,address):
            unit.personsfirstname=first_name
            unit.lastname=last_name
            unit.personsage=age
            unit.address=address
            unit.personNo+=1
    def ShowInfo(unit):
            print("Ονομα: "+unit.personsfirstname+ "Επιθετο: "+unit.lastname+ "Ηλικια: "+unit.personsage+ "Οδος: "+ unit.address)
            


person1=Person("George","Stefanopoulos","55","Alpha street 33")
person2=Person("Μαρια","Πενταγιωτισα","25","Παπαλαμπρενας 28")

Pokud chcete, aby jednoduše vrátit True nebo False pro adresu, ale nevím, proč by to uděláte, postupujte takto:

class Person:
    personNo=0
    def __init__(unit,first_name,last_name,age,address):
            unit.personsfirstname=first_name
            unit.lastname=last_name
            unit.personsage=age
            unit.address=address
            unit.personNo+=1
    def ShowInfo(unit):
            print("Ονομα: "+unit.personsfirstname+ "Επιθετο: "+unit.lastname+ "Ηλικια: "+unit.personsage+ "Οδος: "+str(unit.address==address))
            


person1=Person("George","Stefanopoulos","55","Alpha street 33")
person2=Person("Μαρια","Πενταγιωτισα","25","Παπαλαμπρενας 28")



Také, můžete použít _init_ a konstruktor může být definován pomocí __init__.
Nemají správně deklarovaný konstruktor, dostaneš chybu, že se snaží vytvořit novou instanci třídy Person s některými argumenty. Vaše funkce _init_ je normální method třídy.

2021-11-23 13:59:43

Je spuštěn tento kód a objevil chybu: člověka1=Osoba("George","Stefanopoulos","55","Alfa street 33") TypeError: Osoba() přijímá žádné argumenty
ronin512

Neviděl jsem, že budete používat _init_ místo __init__. Aktualizoval jsem kód. Nemají právo __init__ funkce nebudete mít konstruktor pro funkci.
Alexandru DuDu

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................