python-internals- все статьи тега ➜ страница 0
python генераторы сборка мусора
Я думаю, что мой вопрос связан с этим, но не совсем похож. Рассмотрим этот код: def countdown(n): try: while n > 0: yield n n -= 1 finally: print('In the finally block') def main(): for n in countdown(10): if n == 5: break print('Counting... ', n) print('Finished counting') main() Вывод этого кода: Counting... 10 Counting... 9 Counting... 8 Counting... 7 Counting... 6 ...
Возможны ли статические переменные класса?
возможно ли иметь статические переменные класса или методы в python? Какой синтаксис требуется для этого? ...
Как работает @ property decorator?
я хотел бы понять, как встроенная функция property строительство. Что меня смущает, так это property также может использоваться в качестве декоратора, но он принимает аргументы только при использовании в качестве встроенной функции, а не при использовании в качестве декоратора. этот пример из документация: class C(object): def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del ...
время.сон-спит нить или процесс?
в Python для *nix, делает time.sleep() блокировать поток или процесс? ...
Почему некоторые плавают
при сравнении поплавков с целыми числами некоторые пары значений оцениваются намного дольше, чем другие значения аналогичной величины. например: >>> import timeit >>> timeit.timeit("562949953420000.7 < 562949953421000") # run 1 million times 0.5387085462592742 но если поплавок или целое число становится меньше или больше на определенную величину, сравнение выполняется гораздо быстрее: >>> timeit.timeit("562949953420000.7 < 562949953422000") # integer increas ...
Почему кортежи занимают меньше места в памяти, чем списки?
A tuple занимает меньше места в памяти в Python: >>> a = (1,2,3) >>> a.__sizeof__() 48 , тогда как list s занимает больше места в памяти: >>> b = [1,2,3] >>> b.__sizeof__() 64 что происходит внутри системы управления памятью Python? ...
Python: почему * и ** быстрее, чем / и sqrt()?
при оптимизации моего кода, я понял следующее: >>> from timeit import Timer as T >>> T(lambda : 1234567890 / 4.0).repeat() [0.22256922721862793, 0.20560789108276367, 0.20530295372009277] >>> from __future__ import division >>> T(lambda : 1234567890 / 4).repeat() [0.14969301223754883, 0.14155197143554688, 0.14141488075256348] >>> T(lambda : 1234567890 * 0.25).repeat() [0.13619112968444824, 0.1281130313873291, 0.12830305099487305] а также: >>& ...
Как правильно переопределить операции копирования / deepcopy для объекта в Python?
так просто установить, Я чувствую, что я понимаю разницу между copy и deepcopy в модуле копирования и я использовал copy.copy и copy.deepcopy прежде чем успешно, но это первый раз, когда я на самом деле пошел о перегрузке __copy__ и __deepcopy__ методы. Я уже погуглил и просмотрел встроенные модули Python, чтобы найти экземпляры __copy__ и __deepcopy__ функции (например,sets.py,decimal.py и fractions.py), но я все еще не на 100% уверен, что у меня есть это правильно. вот мой сценарий: у меня ...