有没有办法在Python中确定对象是否具有某些属性?例如:
>>> a = SomeClass()
>>> a.someProperty = value
>>> a.property
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'
Run Code Online (Sandbox Code Playgroud)
在使用之前如何判断是否a具有该属性property?
我试图理解Python中的Iterability.
据我所知,__iter__()应该返回一个next()定义了方法的对象,该对象必须返回一个值或引发StopIteration异常.因此,我写了这个满足这两个条件的课程.
但它似乎没有用.怎么了?
class Iterator:
def __init__(self):
self.i = 1
def __iter__(self):
return self
def next(self):
if self.i < 5:
return self.i
else:
raise StopIteration
if __name__ == __main__:
ai = Iterator()
b = [i for i in ai]
print b
Run Code Online (Sandbox Code Playgroud) 用于在Python 2.x中返回列表的许多方法现在似乎都在Py3k中返回迭代器
迭代器也是生成器表达式吗?懒惰评价?
因此,随着这一点,python的内存占用将大幅减少.不是吗?
使用内置脚本从2to3转换的程序怎么样?
为了兼容性,内置工具是否将所有返回的迭代器显式转换为列表?如果是这样,那么Py3k的较低内存占用优势在转换后的程序中并不明显.是吗?