>>> class A:
def __init__(self, value):
self._value = value
def meth_a(self):
print('Class A Method with value {}...'.format(self._value))
>>> class B(A):
def meth_b(self, value):
self._value = value
print('Class B Method with value {}...'.format(self._value))
>>> x = B(100)
>>> x.meth_a()
Class A Method with value 100...
>>> x.meth_b(40)
Class B Method with value 40...
>>> x.meth_a()
Class A Method with value 40... # Значение атрибута объекта класса А изменилось !
>>> class A:
def __init__(self, value):
self.__value = value
def meth_a(self):
print('Class A Method with value {}...'.format(self.__value))
>>> class B(A):
def meth_b(self, value):
self.__value = value
print('Class B Method with value {}...'.format(self.__value))
>>> x = B(100)
>>> x.meth_a()
Class A Method with value 100...
>>> x.meth_b(40)
Class B Method with value 40...
>>> x.meth_a()
Class A Method with value 100... # Значение атрибута объекта класса А осталось неизменным !
Не совсем понятно, как он работает
# Исходный словарь
>>> prefs = {'person1': {'item1': 5, 'item3': 10},
'person2': {'item1': 3, 'item2': 6}}
# Обращение к значению ключа вложенного словаря
>>> prefs['person1']['item1']
5
# Разница значений ключей
>>> prefs['person1']['item1'] - prefs['person2']['item1']
2
# Функция pow() возведения числа в степень
>>> pow(5, 2)
25
>>> pow(5, 2) == 5 ** 2
True
# Перебираем ключи словаря
>>> [key for key in prefs['person1']]
['item1', 'item3']
>>> [key for key in prefs['person2']]
['item1', 'item2']
# Находим общие для словарей prefs['person1'] и prefs['person2'] ключи
>>> [key for key in prefs['person1'] if key in prefs['person2']]
['item1']
# Функция sum() нахождения суммы
>>> x = list(range(5))
>>> x
[0, 1, 2, 3, 4]
>>> sum(x)
10
>>> x = [1, 2, [3, 4, 5, [6, 7], [8, [9, [10, 11], 12]], 13, 14], 15]
>>> from collections import Iterable
>>> def nested_to_flat(items):
for i in items:
if isinstance(i, Iterable):
yield from nested_to_flat(i)
else:
yield i
>>> list(nested_to_flat(x))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]