Яке призначення self
слова в Python? Я розумію, це стосується конкретного об'єкта, створеного з цього класу, але я не можу зрозуміти, чому його явно потрібно додавати до кожної функції в якості параметра. Для ілюстрації, в Ruby я можу це зробити:
class myClass
def myFunc(name)
@name = name
end
end
Що я розумію, досить легко. Однак у Python мені потрібно включити self
:
class myClass:
def myFunc(self, name):
self.name = name
Хтось може поговорити зі мною через це? Це не те, що я зіткнувся зі своїм (правда, обмеженим) досвідом.
@name
інтуїтивнішим ніж self.name
? Останній, ІМО, більш інтуїтивний.
@foo
і self.foo
настільки ж явні, оскільки не потрібно мати неявну роздільну здатність (наприклад, у C ++, до членів екземплярів можна отримати доступ "неявно" без "явного" використання просторів імен). Різниця лише в тому, що Рубі вводить новий семантичний (@), а Python - ні. Незалежно від того, чи варто було б нове семантичне значення уникнути багатослівності, це суто суб'єктивно. Хоча слід зазначити, що більшість сучасних мов вирішили ввести тут концепцію (наприклад, php's $ this, JS's this).