Невозможно распечатать, используя класс - PullRequest
0 голосов
/ 10 октября 2019

для простейшего кода

class Dog():
    def __init__(self, color, height, breed):
        self.color = color
        self.height = height
        self.breed = breed

        my_dog = Kolin(color='brown', height='1 feet', breed='german shephered')
        print(type(my_dog))
        print(my_dog.color)

Процесс завершен с кодом выхода 0, и ничего не печатается.

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Вы должны разместить свой процедурный код за пределами класса. При использовании класса для создания объекта вы должны использовать имя класса (Dog). Я не совсем уверен, почему вы использовали Kolin в своем коде`.

class Dog():
    def __init__(self, color, height, breed):
        self.color = color
        self.height = height
        self.breed = breed

my_dog = Dog(color='brown', height='1 feet', breed='german shephered')
print(type(my_dog))
print(my_dog.color)
0 голосов
/ 10 октября 2019

Оператор python class определяет класс. В конце выполнения вашего скрипта у вас будет класс, определенный в локальных переменных:

from pprint import pprint

pprint(locals())

Вывод:

{'Dog': <class __main__.Dog at 0x033966F8>,
 '__builtins__': <module '__builtin__' (built-in)>,
 '__doc__': None,
 '__file__': 'C:/Users/********/.PyCharm2019.2/config/scratches/scratch_7.py',
 '__name__': '__main__',
 '__package__': None,
 'pprint': <function pprint at 0x03430CF0>}

Если вы добавите еще одну строку в ваш скрипт для выполнения, вы можетепосмотрите, какой класс вы определили:

print(Dog)

Вывод:

__main__.Dog

Вы, вероятно, хотите создать экземпляр этого класса:

my_dog = Dog(color='brown', height='1 feet', breed='German Shepard')

print(type(my_dog))
print(my_dog.color)

Выглядит так, как вы хотелиназвать свою собаку Колин. Для этого вам понадобится еще один атрибут.

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