每个对象都有一个__dir__
属性,如果附加了额外的.__dir__
引用,命令会停止吗?你知道吗
>>> dir(''.__dir__)
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
而且
>>> dir(''.__dir__.__dir__.__dir__.__dir__)
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
当附加足够的“.dir”时,它会停止吗?你知道吗
您使用的是
__dir__
属性的dir()
,它是一个builtin_function_or_method
对象,具有__dir__
属性。是的,您可以无休止地链接那些__dir__
属性查找,因为结果总是相同的;绑定方法对象:Python中的每个对象都有一个^{} attribute ,它总是可调用的。你知道吗
注意:串接属性查找的方式使绑定方法对象链保持活动状态,因此最终会耗尽内存;每个
__dir__
方法包装器在其__self__
属性中引用前面的方法。你知道吗相关问题 更多 >
编程相关推荐