The title is content. To get down to business, you need to look at the contents below.
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
How can '__name__' object be used when there is no '__name__' object in dir(self.__class__)?
I really don't know why this is happend. Please, share you experience. thank you.