Python 3.x 怎样才能'__名称';对象在没有'时使用__名称';目录中的对象(self.\u类\u)?

Python 3.x 怎样才能'__名称';对象在没有'时使用__名称';目录中的对象(self.\u类\u)?,python-3.x,Python 3.x,标题是内容。要开始谈正事,你需要看看下面的内容 class Test(): def __init__(self, name, power): print(f'class dir : {dir(self.__class__)}', end='\n\n') print(f'class name : {self.__class__.__name__}') self.__name = name + self.__class__.__name__

标题是内容。要开始谈正事,你需要看看下面的内容

class Test():
    def __init__(self, name, power):
        print(f'class dir : {dir(self.__class__)}', end='\n\n')
        print(f'class name : {self.__class__.__name__}')
        self.__name = name + self.__class__.__name__
        self.__power = power
    def use(self):
        print(f'blah~')
    @property
    def name(self):
        return self.__name

>>>Test('test', 1)
class dir : ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name', 'use']
class name : Test
如果dir(self.\uuuuuu class\uuuu)中没有'\uuuuuu name\uuuuuuuu'对象,如何使用'\uuuuuuuu name\uuuuuu'对象


我真的不知道为什么会这样。请分享你的经验。谢谢。

来自文档:“因为提供
dir()
主要是为了方便在交互提示下使用,所以它尝试提供一组有趣的名称,而不是严格或一致定义的名称,其详细行为可能会在不同版本中发生变化。”@谢谢你的评论。但是,我想确切地知道这一点;这回答了你的问题吗?特别是@wjandrea哇!完全正确。非常感谢。