Возможно, вам это нравится. Единственный, о котором вы были совершенно неправы, - z = 300
. Это имя, которое является локальным для метода __init__
. Python never вставляет self
для вас таким же образом, что C++ и Java будут принимать this
, где это возможно.
Одна вещь, которую следует помнить, когда вы продолжаете изучать Python, состоит в том, что функции-члены всегда могут выполняться как члены класса. Рассмотрим следующий пример:
>>> class Sample(object):
... def __init__(self, value):
... self.value = value
... def get_value(self):
... return self.value
...
>>> s = Sample(1)
>>> t = Sample(2)
>>> s.get_value()
1
>>> Sample.get_value(s)
1
>>> t.__class__.get_value(s)
1
Последние три примера все вызываем функцию член от s
объекта. Последние два используют тот факт, что get_value
является всего лишь атрибутом класса Sample
, который ожидает получить в качестве аргумента экземпляр Sample
.
Duplicate, duplicate, duplicate ... lots и * lots * вопросов, подобных этому, лотов и * лотов * полной документации. –
@ChrisMorgan: если вы собираетесь называть дубликат, по крайней мере, найдите лучший дубликат ответов и разместите ссылку здесь. –
Чтобы выбрать несколько примеров, которые демонстрируют все точки этого вопроса: [переменные класса и экземпляра] (http://stackoverflow.com/questions/207000/python-difference-between-class-and-instance-attributes), [private variables] (http://stackoverflow.com/questions/3294764/simulate-private-variables-in-python) –