2016-11-07 2 views
-4

Я новичок в Python, поэтому было бы здорово, если бы кто-то может найти время, чтобы ответить на мой запрос:цепочки атрибутов в питоне

Fido = Dog() 

Я могу понять

Fido.size = "tall" 
Fido.sleeps() 

Но я не уверен, что это означает, что, как указано в приведенной ниже ссылке:

http://reeborg.ca/docs/oop_py_en/oop.html

Объекты с также другие объекты, которые принадлежат им, каждый со своими собственными методами и атрибутами:

Fido.tail.wags() 
Fido.tail.type = "bushy"; 
Fido.left_front_paw.moves() 
Fido.head.mouth.teeth.canine.hurts() 

Пожалуйста, помогите

+0

'Fido = Dog()' создает новый объект класса 'Dog' и присваивает ему новую переменную' Fido'. –

ответ

0

Fido.tail.type является установкой type переменных (атрибута) внутри класса .tail() метода "bushy".

В классах есть функции, которые называются методами.

class Person: 

    def __init__(self, name): 
     self.name = name # Setting the name of the 'person' 

    def wave(self): # The methods which is called with George.wave() 
     print(self.name + ' waves at you.') 
George = Person('George') 
George.wave() 

Будут напечатаны «Джордж волны на вас».

+0

Спасибо за ваш ответ. Да, я могу понять базовую концепцию object.attribute или object.method(). Но на самом деле не согласен с object.attribute.attribute.attribute. Пожалуйста, помогите мне визуализировать. – ahimsa

0

Для начала все объекты в Python. This SO вопрос - хорошее место, чтобы начать понимать, что значит для чего-то быть объектом. Это означает, что почти все в Python имеет атрибуты и методы. Например строка

'foo' 

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

В примере Fido «хвост» - это объект, принадлежащий Fido. Этот объект имеет «тип» и метод «wags». Следовательно, мы можем сказать, что «wags» - это метод хвоста, который является объектом, найденным в Fido (который является экземпляром класса Dog).

+0

Большое спасибо за ваш ответ и ссылку. Давайте посмотрим на строку - Fido.head.mouth.teeth.canine.hurts(). Вот я понимаю, что голова - это атрибут Fido, рот - это атрибут головы, зубы - атрибут рта и т. д. и, наконец, болит() - это метод собаки. (Пожалуйста, поправьте меня, если я ошибаюсь). Поэтому я должен визуализировать «голову» как родительский класс для «рта» и «рта» в качестве родителя класс для «зубов» и т. д. Если нет, то, пожалуйста, помогите мне визуализировать поток. – ahimsa

+0

Родительский и дочерний классы используются для обозначения объектов, которые наследуют атрибуты и свойства друг от друга. Голова, рот, зубы и собака, вероятно, определены как атрибуты, которые наследуют некоторые значения от объекта, в котором они содержатся: должно быть хорошо, чтобы визуализировать их как «родительские классы» для объектов, которые они содержат. – Fruitspunchsamurai

Смежные вопросы