В суете жизни очень часто бывает так, что мы перестаем получать удовольствие от жизни, видеть красоту в окружающем нас мире, радовать мелочам и привычным вещам, что окружают нас. Наш взгляд замыливается и мы перестаем все это видеть. Но на самом деле – это все лишь наш выбор. И мы можем видеть красоту и делать то, что приносит нам радость. Мы можем улыбаться, делая выбор не расстраиваться и не пускать негатив в свою жизнь. Мы можем быть счастливы в жизни! И мы можем простыми действиями улучшить свою жизнь за 5 минут!
Архив автора: admin
Когда использовать import
Единственное, когда необходимо вместо инструкции from использовать инструкцию import, – когда требуется использовать одно и то же имя, присутствующее в двух разных модулях. Например, когда два файла по-разному определяют одно и то же имя:
# M.py
def func():
…выполнить что-то одно…
# N.py
def func():
…выполнить что-то другое…
и необходимо использовать обе версии имени в программе. В этом случае инструкцию from использовать нельзя, потому что в результате вы получите единственное имя в вашей области видимости:
# O.py
from M import func
from N import func # Перезапишет имя, импортированное из модуля M
func() # Будет вызвана N.func
Зато можно использовать инструкцию import, потому что включение имени
вмещающего модуля сделает имена уникальными:
Автор: Няшный Человек
Дата публикации: 2014-05-25T11:42:00.002+03:00
Минусы инструкции from
На этот раз речь пойдет о минусах использовании инструкции from.
— У инструкции from менее явное отображение переменной (имя name несет меньше информации, чем module.name), поэтому некоторые пользователи Python рекомендуют использовать инструкцию import вместо from. Но это иногда можно опровергнуть, так как такой использование from происходит довольно таки часто и без страшных последствий.
— Инструкция from способна повреждать пространства имен, по крайней мере, в принципе – если использовать ее для импортирования переменных, когда существуют одноименные переменные в имеющейся области видимости, то эти переменные просто будут перезаписаны. Эта проблема отсутствует при использовании инструкции import, потому что доступ к содержимому импортируемого модуля возможен только через его имя (имя module.attr не конфликтует с именем attr в текущей области видимости).
Пока вы понимаете и контролируете все, что может происходить при использовании инструкции from, во всем этом нет большой проблемы, особенно если импортируемые имена указываются явно (например, from module import x, y, z).
С другой стороны, инструкция from скрывает в себе более серьезные проблемы, когда используется в комбинации с функцией reload, так как импортированные имена могут ссылаться на предыдущие версии объектов. Кроме того, инструкция в форме from module import * действительно может повреждать пространства имен и затрудняет понимание имен, особенно когда она применяется более чем к одному файлу, – в этом случае нет никакого способа определить, какому модулю принадлежит то или иное имя, разве только выполнить поиск по файлам с исходными текстами. В действительности форма from * вставляет одно пространство имен в другое, что сводит на нет преимущества, которые несет возможность разделения пространств имен.
Пожалуй, лучший совет, который можн
изменяемый объект в аргументах
def func(f, l=[]):
l.append(f)
return l
func является потенциально опасной. Смотрим что происходит при её использовании
>>> print(func(1))
[1]
>>> print(func(2))
[1, 2]
l ссылается на один и тот же объект, который все время и изменяется (вспоминаем концепцию python)
Решение очевидное — определить список в функции
Такое решение используется и в популярном фреймворке request
class Request(RequestHooksMixin):
def __init__(self,
method=None,
url=None,
headers=None,
files=None,
data=None,
params=None,
auth=None,
cookies=None,
hooks=None):
# Default empty dicts for dict params.
data = [] if data is None else data
files = [] if files is None else files
headers = {} if headers is None else headers
params = {} if params is None else params
hooks = {} if hooks is None else hooks
Ссылки
https://github.com/kennethreitz/requests/blob/master/requests/models.py
Автор: Евгений Курочкин
Медитация Художник своей жизни
Вы давно рисовали? Просто так, от души…как рисуют дети, не особенно переживая, что они не умеют и у них что-то не получится. А ведь творчество раскрывает скрытые резервы и таланты, проявляя все самое лучшее, что есть в Вас. И сегодня у Вас будет возможность проявить себя и ощутить сполна в роли настоящего художника – Художника своей жизни!

