Int*_*rer 5 python attributes object
我__name__对 Python 对象中的存储位置感到困惑。
以 Python 为例str:
In [1]: hasattr(str, "__name__")
Out[1]: True
In [2]: getattr(str, "__name__")
Out[2]: 'str'
In [3]: "__name__" in str.__dict__
Out[3]: False
In [4]: "__name__" in list(dir(str))
Out[4]: False
Run Code Online (Sandbox Code Playgroud)
您可以从[1]+ [2]that 中看到str.__name__,它具有值"str"。但是,我无法通过使用dir()和找到它的存储位置__dict__。
我知道我遗漏了一些东西,但从我所有的阅读中我无法弄清楚。你能帮我么?
看过的地方
从这些问题:
In [5]: str.__class__.__name__
Out[5]: 'type'
In [6]: "hi".__class__.__name__
Out[6]: 'str'
Run Code Online (Sandbox Code Playgroud)
可以看到一个str 实例已__name__ = "str"存储在__class__.
班级__name__ = "str"内在哪里? str
在此先感谢您的帮助!
稍后编辑
原来这是一个重复。答案(如评论中所述)是:
In [1]: type.__dict__['__name__'].__get__(str)
Out[1]: 'str'
Run Code Online (Sandbox Code Playgroud)
推理可以在这些问题中找到:
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |