Как распечатать элементы класса, включая os («очистить»)? - PullRequest
0 голосов
/ 26 апреля 2019

Может кто-нибудь объяснить мне, почему функция menu () в приведенном ниже коде не печатает атрибуты ученика, а menu2 () -?

Спасибо

import os
class person():
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def printAttr(self):
        print([self.name, self.age])


def menu(title = None):
    while True:
        os.system('clear')
        print("A")
        title
        break

def menu2(title = None):
    while True:
        print("A")
        title
        break

Person = person("Peter", 35)
menu(title=Person.printAttr())
print("")
menu2(title=Person.printAttr())

1 Ответ

1 голос
/ 26 апреля 2019

Как только вы установите заголовок, вы также распечатаете атрибуты.Затем вы переходите в меню (), где очищаете вывод.

Если вы настаиваете на использовании os.system ('clear'), вы можете изменить свой код следующим образом:

def menu(title = None):
    while True:
        os.system('clear')
        print("A")
        title.printAttr()
        break

Person = person("Peter", 35)
menu(title=Person)

В приведенном выше решении вы печатаете после очистки консоли, используя printAttr () внутри метода, а не когда вы устанавливаете параметр title.

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