前面在介绍 Python 内置函数时,提到了 dir() 函数,通过此函数可以某个对象拥有的所有的属性名和方法名,该函数会返回一个包含有所有属性名和方法名的有序列表。
举个例子:
class CLanguage:
def __init__ (self,):
self.name = "城东书院"
self.add = "http://www.cdsy.xyz"
def say():
pass
clangs = CLanguage()
print(dir(clangs))
程序运行结果为:
注意,通过 dir() 函数,不仅仅输出本类中新添加的属性名和方法(最后 3 个),还会输出从父类(这里为 object 类)继承得到的属性名和方法名。
值得一提的是,dir() 函数的内部实现,其实是在调用参数对象 __dir__() 方法的基础上,对该方法返回的属性名和方法名做了排序。
所以,除了使用 dir() 函数,我们完全可以自行调用该对象具有的 __dir__() 方法:
class CLanguage:
def __init__ (self,):
self.name = "城东书院"
self.add = "http://www.cdsy.xyz"
def say():
pass
clangs = CLanguage()
print(clangs.__dir__())
程序运行结果为:
显然,使用 __dir__() 方法和 dir() 函数输出的数据是相同,仅仅顺序不同。