gpt4 book ai didi

python - 如果命令 `dir(' '.__dir__.__dir__.__dir__.__dir__)` 结束以停止打印其属性?

转载 作者:行者123 更新时间:2023-11-28 20:36:14 25 4
gpt4 key购买 nike

每个对象都有一个 __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__ 属性查找,因为结果总是相同的;绑定(bind)方法对象:

>>> ''.__dir__.__dir__
<built-in method __dir__ of builtin_function_or_method object at 0x10672cfc0>
>>> ''.__dir__.__dir__.__dir__
<built-in method __dir__ of builtin_function_or_method object at 0x1067361f8>

Python 中的每个 对象都有一个 __dir__ attribute ,它始终是可调用的。

注意:您串起属性查找的方式使绑定(bind)方法对象链保持事件状态,因此您最终会耗尽内存;每个 __dir__ 方法包装器在它们的 __self__ 属性中引用前一个。

关于python - 如果命令 `dir(' '.__dir__.__dir__.__dir__.__dir__)` 结束以停止打印其属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45571722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com