Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
260 / 34 / 7
Регистрация: 03.02.2025
Сообщений: 119

Что такое self?

05.07.2025, 23:33. Показов 1296. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я правильно понимаю что self это объект porsche который передаётся в функцию start ?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Car():
    wheels = 4
    doors = 4
    windows = 4
    seets = 4
 
    def start(self):
        print("Двигатель запущен")
 
porsche = Car()
porsche.color = "black"
porsche.start()
 
ferari = Car()
ferari.color = "red"
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2025, 23:33
Ответы с готовыми решениями:

__init__(self, winner, year, category) ;__str__(self)
Создайте класс NobelWinner. У экземпляра класса NobelWinner должны быть атрибуты: · winner – ФИО...

Для чего служит ключевое слово «self». Например, def __init__(self):?
Для чего служит ключевое слово «self». Например, def __init__(self):? 1) Это общая переменная для...

Что такое self.assertEqual() из unittest?
вообщем, всем привет! у меня такой вопрос возник что такое self.assertEqual и для чего оно вообще...

4
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
06.07.2025, 08:14
Eduard1977, да, ссылка на объект, ты можешь вызвать метод и вот так, с явной передачей
Python
1
Car.start(porsche)
0
93 / 88 / 17
Регистрация: 05.08.2021
Сообщений: 425
06.07.2025, 08:50
Ссылка на экземпляр класса. В Питоне как я знаю обычно пишут так
Python
1
2
3
4
5
6
7
8
9
class Car():
    def __init__(self, wheels, doors, windows, seets):
        self.wheels = wheels
        self.doors = doors
        self.windows = windows
        self.seets = seets
        
porsche = Car(4,4,4,4)
print(porsche.doors)
1
 Аватар для ViachaslauK
122 / 180 / 16
Регистрация: 08.10.2024
Сообщений: 648
06.07.2025, 10:31
Лучший ответ Сообщение было отмечено gogolik как решение

Решение

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
В Питоне как я знаю обычно пишут так
Обычно так не пишут, если параметр - аттрибут классаи его не обязательно каждый раз передавать в обьект инстанса класса, Наверное такой код немного наглядне поможет понять как работает self:


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Car():
    wheels = 4
    doors = 4
    windows = 4
    seats = 4
    
    def __init__(self, name=None):
        self.name = name
 
    def start(self):
        if self.name:
            print(f"{self.name} ({self.__class__.__name__}): Двигатель запущен")
        else:
            print(f"{self.__class__.__name__}: Двигатель запущен")
 
 
porsche = Car("Porsche")
porsche.color = "black"
porsche.start()  # Output: Porsche (Car): Двигатель запущен
 
ferrari = Car("Ferrari")
ferrari.color = "red"
ferrari.start()  # Output: Ferrari (Car): Двигатель запущен
 
# Without name
bmw = Car()
bmw.start()  # Output: Car: Двигатель запущен
А можно еще сразу перейти к понятию cls - как работать не с экземпляром а с самим классом
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class Car():
    wheels = 4
    doors = 4
    windows = 4
    seats = 4
    
    def __init__(self, name=None):
        self.name = name
 
    def start(self):
        if self.name:
            print(f"{self.name} ({self.__class__.__name__}): Двигатель запущен")
        else:
            print(f"{self.__class__.__name__}: Двигатель запущен")
    
    def get_info(self):
        name = self.name or "Unknown Car"
        print(f"{name} specs:")
        print(f"  Wheels: {self.wheels}")
        print(f"  Doors: {self.doors}")
        print(f"  Windows: {self.windows}")
        print(f"  Seats: {self.seats}")
    
    def modify_wheels(self, new_wheels):
        """Change wheels for this specific instance"""
        self.wheels = new_wheels
        print(f"Modified wheels to {new_wheels}")
 
 
# Using class attributes
porsche = Car("Porsche")
porsche.color = "black"
porsche.start()  # Output: Porsche (Car): Двигатель запущен
porsche.get_info()  # Shows default class attributes
 
ferrari = Car("Ferrari")
ferrari.color = "red"
ferrari.start()  # Output: Ferrari (Car): Двигатель запущен
 
# Without name
bmw = Car()
bmw.start()  # Output: Car: Двигатель запущен
 
# Accessing class attributes directly
print(f"Default wheels: {Car.wheels}")  # Output: Default wheels: 4
print(f"BMW wheels: {bmw.wheels}")      # Output: BMW wheels: 4
 
# Modifying instance attribute (doesn't affect class or other instances)
bmw.modify_wheels(6)  # Create monster truck
bmw.get_info()        # Shows modified wheels: 6
 
# Other instances still have original class attributes
print(f"Porsche wheels: {porsche.wheels}")  # Output: Porsche wheels: 4
print(f"Class wheels: {Car.wheels}")        # Output: Class wheels: 4
 
# Modifying class attribute affects all instances that haven't overridden it
Car.doors = 2  # Change class attribute
print(f"After class change - Porsche doors: {porsche.doors}")  # Output: 2
print(f"After class change - Ferrari doors: {ferrari.doors}")  # Output: 2
print(f"Porshe info: {porsche.get_info()}")  # Shows modified doors: 2
0
260 / 34 / 7
Регистрация: 03.02.2025
Сообщений: 119
06.07.2025, 23:26  [ТС]
Всем спасибо за ответы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2025, 23:26
Помогаю со студенческими работами здесь

Что такое "self"?
Изучаю PyQt5. Там в каждом примере используется аргумент self. Кто может подсказать что это за...

Что такое __init__ и self в python?
Что такое __init__ и self в python? Читая в книге начал проходить классы..Вроде что для чего...

Пайчарм говорит, что не хватает self
while True: controls.events(screen, gun, bullets) gun.update_gun() ...

Ошибка: super(Connection, self).__init__(*args, **kwargs2). TypeError: keywords must be strings
Питон версия: 2.7.5 Полный текст ошибки:File...

NameError: name self is not defined
def add_cat(self, row, col): self._cat_list.append((row, col)) Traceback (most recent...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru