1338 Stimmen

Was ist der Zweck des Wortes 'self'?

Was ist der Zweck von self in Python? Ich verstehe, dass es sich auf das spezifische Objektinstanz bezieht, die aus dieser Klasse erstellt wurde. Aber warum muss es explizit als Parameter zu jeder Methode hinzugefügt werden?

Zur Veranschaulichung, in Ruby kann ich dies tun:

class MyClass
    def func(name)
        @name = name
    end

In Python muss ich jedoch self einschließen:

class MyClass:
    def func(self, name):
        self.name = name

0voto

saran Punkte 196

Meine kleinen 2 Cent

In dieser Klasse Person haben wir unsere init Methode mit dem self definiert und interessant ist hier zu bemerken, dass der Speicherort sowohl des self als auch der Instanzvariable p gleich ist <__main__.Person object at 0x106a78fd0>

class Person:

    def __init__(self, name, age):
        self.name = name 
        self.age = age 

    def say_hi(self):
        print("das self ist bei:", self)
        print((f"hey, mein Name ist {self.name} und ich bin {self.age} Jahre alt"))

    def say_bye(self):
        print("das self ist bei:", self)
        print(f"schön, dich zu sehen {self.name}")

p = Person("John", 78)
print("das p ist bei",p)
p.say_hi()  
p.say_bye() 

wie oben erklärt, sind sowohl self als auch die Instanzvariable dasselbe Objekt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X