Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

скрипты ооп python

Ссылки на изменяемые объекты долго живут К изменяемым объектам в Python относятся списки, словари и объекты наследуемые от базового класса object. Будьте крайне внимательны при написании программ, помните что связь на изменяемый объект сохраняется всегда.

class M(object):
    def __init__(self, data):
        self.__data = data
    def data(self):
        return self.__data
init_data = ['php']
m = M(init_data)
print m.data() # ['php']
init_data.append('python')
# объекты init_data и M.__data ссылаются на один и тот же объект
print init_data # ['php', 'python']
print m.data() # ['php', 'python']
data = m.data()
print data # ['php', 'python']
data.append('ruby')
# теперь уже 3 объекта ссылаются на одну и ту же переменную
print data # ['php', 'python', 'ruby']
print init_data # ['php', 'python', 'ruby']
print m.data() # ['php', 'python', 'ruby']

На самом деле даже если вы отправляете объект в функцию, связь не теряется на выходе. Функция возвращает ссылку на переменную.

M = lambda data: data
init_data = ['php']
m = M(init_data)
m.append('python')
print m # ['php', 'python']
print init_data # ['php', 'python']
print m is init_data # True

Будьте внимательны при написании программ, иногда необходимо чтобы метод класса или функция вернули новый объект, а не ссылку. Создать новый объект например из списка можно - list(lst), из словаря dict(). В остальных случаях поможет модуль copy.Далее...