Найти - Пользователи
Полная версия: Помогите модернизировать программу - ООП, классы и их методы
Начало » Python для новичков » Помогите модернизировать программу - ООП, классы и их методы
1
mbi_cyber
Задача - создать метод PrintInfo() и Newperson() для класса Person, указав для каждого объекта name,lastname,adress,passport,age,phone


 class Person:
    def __init__(self,name,lastname,adress,passport,age,phone):
        self.__Name = name
        self.__Lastname = lastname
        self.__Adress = adress
        self.__Passport = passport
        self.__Age = age
        self.__Phone = phone
    def Newperson(self):
        self.__Newname = input("Введіть ім'я для реєстрації:")
        self.__Newlastname = input("Введіть прізвище:")
        self.__Newadress = input ("Введіть адресу:")
        self.__Newpassport = input ("Введіть національність:")
        self.__Newage = input ("Введіть вік:")
        self.__Newphone = input ("Введіть телефон:")
        newperson = Person(self.__Newname, self.__Newlastname, self.__Newadress,
                           self.__Newpassport, self.__Newage, self.__Newphone)
        print ("\nSuccessfully registered")
        return newperson.PrintInfo()
    def PrintInfo(self):
        print ("\nMy name is", self.__Name, self.__Lastname)
        print ("I'm", str(self.__Age), "years old")
        print ("I'm", self.__Passport)
        print ("My adress is", self.__Adress)
        print ("My phone:", self.__Phone)
Bob = Person("Bob", "Muller", "Vasilkovskaya, 90a", "Ukrainian", 17, 
             "+380345678934")
Jack = Person("Jack", "Rider", "Heroiv, 13", "Polish", 19, 
             "+38034567853")
new = Person("123", "123", "123, 123", "123", 123, 
             "123")
b=str(input("What info do you need?"))
if b == "Bob":
    Bob.PrintInfo()
elif b == "Jack":
    Jack.PrintInfo()
else:
    print("No person with this name")
    a=str(input("If you want to registrate, print +"))
    if a == "+":
        new.Newperson()
marvellik
mbi_cyber выделить код нажать вверху окна сообщений рядом с смайлом слева стрелку и выбрать питон !
код без отступов не читаем !!!
FishHook
mbi_cyber
Это вы что пытаетесь реализовать? Паттерн “Строитель” что ли? Вам статический метод нужен, если так.
PEHDOM
mbi_cyber
self.__Newname=…
зачем вы делаете временные переменные атрибутами инстанса, да еще и “защищенными”?
mbi_cyber
return newperson.PrintInfo()
что вообще должно делать Newperson()?
если создавать новый обьект то вам нужно вовзвращать newperson, а не newperson.PrintInfo().
если изменять текущий то вобщем вы чтото не то делаете от слова “совсем”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB