Вопрос Как работает self и __init__

  • Автор темы Автор темы CleoSKS
  • Дата начала Дата начала
когда добавляешь self к переменой, переменную можно будет вызвать из другого файла и задать ей значение, а про init, если имеется в виду файл __init__.py
то это файл к которому питон первым обращается в директорий
 
когда добавляешь self к переменой, переменную можно будет вызвать из другого файла и задать ей значение, а про init, если имеется в виду файл __init__.py
то это файл к которому питон первым обращается в директорий
ТК можно аргументы через функцию передавать
 
когда добавляешь self к переменой, переменную можно будет вызвать из другого файла и задать ей значение, а про init, если имеется в виду файл __init__.py
то это файл к которому питон первым обращается в директорий
Я именно хотел узнать про то что они делают в функциях?
 
Работа self зачастую объясняется с помощью цитаты dark:
‎dark‎: у котов внутри есть мурчалка
dark‎: она реализована для всех котов в классе кот
‎dark‎: в объекте кот надо как то вызвать метод мурчало у класса кот
‎dark‎: как ты это сделаешь?
dark‎: кот.мурчало()
‎dark‎: ежели ты вызовешь кот.мурчало(), муркнут сразу все коты на свете
‎dark‎: а ежели ты вызовешь self.мурчало(), муркнет только тот кот, на которого указывает self
Если все равно ничего не понятно, то советую запастись переводчиком и идти прямиком на stackoverflow, вот очень интересный и полный ответ с картиночками:
Пожалуйста, авторизуйтесь для просмотра ссылки.
, еще один интересный вариант объяснения:
Пожалуйста, авторизуйтесь для просмотра ссылки.
.

__init__ в Python является конструктором классов, который не позволяет создавать экземпляры без обязательных полей. Конечно, можно обойтись и без него, но использование данного метода - неотъемлемая часть любой серьезной программы. Возможно, Вы придете к этому позже :)
Python:
Expand Collapse Copy
class Person:
    def setName(self, n, s):
        self.name = n
        self.surname = s

p1 = Person()
p1.setName("Bill", "Ross")
print(p1.name, p1.surname)
# >>> Bill Ross
Python:
Expand Collapse Copy
class Person:
    def __init__(self, n, s):
        self.name = n
        self.surname = s

p1 = Person("Sam", "Baker") # Не нужно использовать дополнительные методы для установки значения полей класса
print(p1.name, p1.surname)
# >>> Sam Baker
 
Работа self зачастую объясняется с помощью цитаты dark:

Если все равно ничего не понятно, то советую запастись переводчиком и идти прямиком на stackoverflow, вот очень интересный и полный ответ с картиночками:
Пожалуйста, авторизуйтесь для просмотра ссылки.
, еще один интересный вариант объяснения:
Пожалуйста, авторизуйтесь для просмотра ссылки.
.

__init__ в Python является конструктором классов, который не позволяет создавать экземпляры без обязательных полей. Конечно, можно обойтись и без него, но использование данного метода - неотъемлемая часть любой серьезной программы. Возможно, Вы придете к этому позже :)
Python:
Expand Collapse Copy
class Person:
    def setName(self, n, s):
        self.name = n
        self.surname = s

p1 = Person()
p1.setName("Bill", "Ross")
print(p1.name, p1.surname)
# >>> Bill Ross
Python:
Expand Collapse Copy
class Person:
    def __init__(self, n, s):
        self.name = n
        self.surname = s

p1 = Person("Sam", "Baker") # Не нужно использовать дополнительные методы для установки значения полей класса
print(p1.name, p1.surname)
# >>> Sam Baker
Насчет инит понял self всё равно нет
Можно пример кода с этим?
 
Насчет инит понял self всё равно нет
Можно пример кода с этим?
Прочитайте информацию со stackoverflow, там очень доступно все расписано. Ссылки есть в моем ответе.
 
Назад
Сверху Снизу