Может ли Python атрибут объекта иметь свой собственный атрибут? - PullRequest
0 голосов
/ 26 февраля 2020

Меня немного смущает то, что я вижу в файле unittest этого упражнения Exercism. Это некоторые из тестов, которые запускаются для проверки правильности моей программы. (Вы создаете объект PhoneNumber в основной программе.)

    def test_area_code(self):
        number = PhoneNumber("2234567890")
        self.assertEqual(number.area_code, "223")

    def test_pretty_print(self):
        number = PhoneNumber("2234567890")
        self.assertEqual(number.pretty(), "(223) 456-7890")

    def test_pretty_print_with_full_us_phone_number(self):
        number = PhoneNumber("12234567890")
        self.assertEqual(number.pretty(), "(223) 456-7890")

Я знаю, как создать атрибут number для моих объектов класса, но что означают number.area_code и number.pretty()? Что делает этот действительный код Python? Я пытался просто создать значение типа self.number.area_code = <something here>, но это не сработало. Как именно это называется и как мне его создать?

Спасибо!

Редактировать: Это еще одна часть файла unittest:

def test_cleans_the_number(self):
        number = PhoneNumber("(223) 456-7890").number
        self.assertEqual(number, "2234567890")

    def test_cleans_numbers_with_dots(self):
        number = PhoneNumber("223.456.7890").number
        self.assertEqual(number, "2234567890")

    def test_cleans_numbers_with_multiple_spaces(self):
        number = PhoneNumber("223 456   7890   ").number
        self.assertEqual(number, "2234567890")

Разве это не так? Отчасти значит, что number это атрибут? Вот почему я неправильно понял ранее цитированный раздел. Файл unittest, кажется, использует number двумя различными способами, и я не уловил его в первой части!

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