Проверка существования члена в Python
Я просто пытался измерить python время:
class Foo(object):
@classmethod
def singleton(self):
if not hasattr(self, 'instance'):
self.instance = Foo()
return self.instance
class Bar(object):
@classmethod
def singleton(self):
try:
return self.instance
except AttributeError:
self.instance = Bar()
return self.instance
from time import time
n = 1000000
foo = [Foo() for i in xrange(0,n)]
bar = [Bar() for i in xrange(0,n)]
print "Objs created."
print
for times in xrange(1,4):
t = time()
for d in foo: d.singleton()
print "#%d Foo pass in %f" % (times, time()-t)
t = time()
for d in bar: d.singleton()
print "#%d Bar pass in %f" % (times, time()-t)
print
На моей машине:
Objs created.
#1 Foo pass in 1.719000
#1 Bar pass in 1.140000
#2 Foo pass in 1.750000
#2 Bar pass in 1.187000
#3 Foo pass in 1.797000
#3 Bar pass in 1.203000
Похоже, что python-interpreter try / except работает быстрее. Мне python-shell он также кажется более читаемым, в exception-handling любом случае, в зависимости py от случая, этот тест был python-interpreter очень простым, возможно, вам introspection понадобится более сложный.
python
exception
introspection
hasattr
2021-12-06T20:05:46+00:00
2022-03-27T04:40:56+00:00
CatsNyash
Вопросы с похожей тематикой, как у вопроса:
Проверка существования члена в Python
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.