mirror of
https://github.com/satwikkansal/wtfpython
synced 2024-11-22 02:54:25 +01:00
Translate Class attributes and instance atributes example
This commit is contained in:
parent
a0069d842e
commit
972d1334fb
71
translations/README-ru.md
vendored
71
translations/README-ru.md
vendored
@ -1440,3 +1440,74 @@ I have lost faith in truth!
|
|||||||
* Python 3 был несовместим с предыдущими версиями, эту проблему наконец-то исправили, и поэтому последний фрагмент не будет работать с Python 3.x!
|
* Python 3 был несовместим с предыдущими версиями, эту проблему наконец-то исправили, и поэтому последний фрагмент не будет работать с Python 3.x!
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
### ▶ Атрибуты класса и экземпляра
|
||||||
|
<!-- Example ID: 6f332208-33bd-482d-8106-42863b739ed9 --->
|
||||||
|
1\.
|
||||||
|
```py
|
||||||
|
class A:
|
||||||
|
x = 1
|
||||||
|
|
||||||
|
class B(A):
|
||||||
|
pass
|
||||||
|
|
||||||
|
class C(A):
|
||||||
|
pass
|
||||||
|
```
|
||||||
|
|
||||||
|
**Результат:**
|
||||||
|
```py
|
||||||
|
>>> A.x, B.x, C.x
|
||||||
|
(1, 1, 1)
|
||||||
|
>>> B.x = 2
|
||||||
|
>>> A.x, B.x, C.x
|
||||||
|
(1, 2, 1)
|
||||||
|
>>> A.x = 3
|
||||||
|
>>> A.x, B.x, C.x # Значение C.x изменилось , но B.x - нет
|
||||||
|
(3, 2, 3)
|
||||||
|
>>> a = A()
|
||||||
|
>>> a.x, A.x
|
||||||
|
(3, 3)
|
||||||
|
>>> a.x += 1
|
||||||
|
>>> a.x, A.x
|
||||||
|
(4, 3)
|
||||||
|
```
|
||||||
|
|
||||||
|
2\.
|
||||||
|
```py
|
||||||
|
class SomeClass:
|
||||||
|
some_var = 15
|
||||||
|
some_list = [5]
|
||||||
|
another_list = [5]
|
||||||
|
def __init__(self, x):
|
||||||
|
self.some_var = x + 1
|
||||||
|
self.some_list = self.some_list + [x]
|
||||||
|
self.another_list += [x]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Результат:**
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>> some_obj = SomeClass(420)
|
||||||
|
>>> some_obj.some_list
|
||||||
|
[5, 420]
|
||||||
|
>>> some_obj.another_list
|
||||||
|
[5, 420]
|
||||||
|
>>> another_obj = SomeClass(111)
|
||||||
|
>>> another_obj.some_list
|
||||||
|
[5, 111]
|
||||||
|
>>> another_obj.another_list
|
||||||
|
[5, 420, 111]
|
||||||
|
>>> another_obj.another_list is SomeClass.another_list
|
||||||
|
True
|
||||||
|
>>> another_obj.another_list is some_obj.another_list
|
||||||
|
True
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 💡 Объяснение:
|
||||||
|
|
||||||
|
* Переменные класса и переменные экземпляров класса внутренне обрабатываются как словари объекта класса. Если имя переменной не найдено в словаре текущего класса, оно ищется в родительских классах.
|
||||||
|
* Оператор += изменяет объект на месте, не создавая новый объект. Таким образом, изменение атрибута одного экземпляра влияет на другие экземпляры и атрибут класса также.
|
||||||
|
|
||||||
|
---
|
||||||
|
Loading…
Reference in New Issue
Block a user