QUIZ_PYTHON Telegram 4025
1. В классе P (родительский класс):
- self.__x = 100 - создается приватный атрибут __x со значением 100
- self.y = 200 - создается публичный атрибут y со значением 200

2. В классе C (дочерний класс):
- super().__init__() - вызывается конструктор родительского класса
- self.__x = 300 - создается НОВЫЙ приватный атрибут __x со значением 300
- self.y = 400 - переопределяется значение публичного атрибута y

Ключевой момент здесь в том, что в Python приватные атрибуты (с двойным подчеркиванием __) автоматически «манглируются» (переименовываются) интерпретатором. Когда мы создаем приватный атрибут __x в классе P, он фактически становится _P__x, а когда создаем __x в классе C, он становится _C__x.

Поэтому:
1. Когда вызывается d.print(), метод print из класса P обращается к self.__x, что на самом деле означает self._P__x, поэтому выводится 100
2. Атрибут y является публичным, поэтому его значение успешно переопределяется в классе C на 400

Таким образом, в выводе мы видим:
- 100 (значение _P__x из родительского класса)
- 400 (значение y из дочернего класса)

Это демонстрирует важное различие между приватными и публичными атрибутами в Python при наследовании.



tgoop.com/quiz_python/4025
Create:
Last Update:

1. В классе P (родительский класс):
- self.__x = 100 - создается приватный атрибут __x со значением 100
- self.y = 200 - создается публичный атрибут y со значением 200

2. В классе C (дочерний класс):
- super().__init__() - вызывается конструктор родительского класса
- self.__x = 300 - создается НОВЫЙ приватный атрибут __x со значением 300
- self.y = 400 - переопределяется значение публичного атрибута y

Ключевой момент здесь в том, что в Python приватные атрибуты (с двойным подчеркиванием __) автоматически «манглируются» (переименовываются) интерпретатором. Когда мы создаем приватный атрибут __x в классе P, он фактически становится _P__x, а когда создаем __x в классе C, он становится _C__x.

Поэтому:
1. Когда вызывается d.print(), метод print из класса P обращается к self.__x, что на самом деле означает self._P__x, поэтому выводится 100
2. Атрибут y является публичным, поэтому его значение успешно переопределяется в классе C на 400

Таким образом, в выводе мы видим:
- 100 (значение _P__x из родительского класса)
- 400 (значение y из дочернего класса)

Это демонстрирует важное различие между приватными и публичными атрибутами в Python при наследовании.

BY Python: задачки и вопросы


Share with your friend now:
tgoop.com/quiz_python/4025

View MORE
Open in Telegram


Telegram News

Date: |

So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”. Unlimited number of subscribers per channel Write your hashtags in the language of your target audience.
from us


Telegram Python: задачки и вопросы
FROM American