2016-11-07 6 views
-4

Ich bin neu in Python so wäre es toll, wenn jemand Zeit finden kann meine Frage zu beantworten:Verkettung von Attributen in Python

Fido = Dog() 

Ich bin in der Lage

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

zu verstehen, aber ich bin nicht sicher, was diese in den folgenden Link als gegeben bedeutet:

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

Objekte c ein auch andere Objekte, die zu ihnen gehören, jede mit ihren eigenen Methoden oder Attribute:

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

Bitte helfen

+0

'Fido = Dog()' erstellt ein neues Objekt der 'Dog' Klasse und weist es einer neuen Variablen' Fido' zu. –

Antwort

0

Fido.tail.type wird die type Variable (Attribut) innerhalb der Klasse .tail() Methode "bushy" Einstellung.

In Klassen gibt es Funktionen, die Methoden genannt werden.

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() 

Wird gedruckt "George Wellen bei dir."

+0

Vielen Dank für Ihre Antwort. Ja ich bin in der Lage, die grundlegende object.attribute oder object.method() Konzept zu verstehen. Aber nicht wirklich mit object.attribute.attribute.attribute. Bitte hilf mir zu visualisieren. – ahimsa

0

Zunächst ist alles ein Objekt in Python. This SO Frage ist ein guter Ort, um zu verstehen, was es bedeutet, dass etwas ein Objekt sein soll. Das bedeutet, dass fast alles in Python über Attribute und Methoden verfügt. Z.B die String

'foo' 

ist eine Aufgabe der String-Klasse, und so hat Methoden und Attribute, die sie über andere Saiten wie seine Länge geteilt werden.

Im Beispiel von Fido ist 'tail' ein Objekt, das zu Fido gehört. Dieses Objekt hat einen "Typ" und eine Methode namens "wags". Daher können wir sagen, dass "wags" eine Methode des Tails ist, welches ein Objekt ist, das in Fido gefunden wird (welches eine Instanz der Dog-Klasse ist).

+0

Vielen Dank für Ihre Antwort und den Link. Werfen Sie einen Blick auf die Linie - Fido.head.mouth.teeth.canine.hurts(). Hier verstehe ich, dass Kopf ist ein Attribut von Fido, Mund ist eine Eigenschaft des Kopfes, Zähne ist ein Attribut des Mundes und so weiter und schließlich schmerzt() ist eine Methode von canine. (Bitte korrigieren Sie mich, wenn ich falsch liege). So sollte ich "Kopf" als Elternklasse für "Mund" und "Mund" als Eltern visualisieren Klasse für "Zähne" und so weiter? Wenn nicht, dann hilf mir bitte, den Fluss zu visualisieren. – ahimsa

+0

Eltern- und Kindklassen werden verwendet, um Objekte zu bezeichnen, die Attribute und Eigenschaften von einander erben. Kopf, Mund, Zähne und Eckzahn sind wahrscheinlich als Attribute definiert, die einige Werte von dem Objekt übernehmen, in dem sie enthalten sind. Es sollte in Ordnung sein, sie als "Elternklassen" für die Objekte zu visualisieren, die sie enthalten. – Fruitspunchsamurai