python利⽤dir函数查看类中所有成员函数⽰例代码
前⾔
如果⼀个类是别⼈编写的,⼜没有帮助⽂档,怎么样来查看所有成员函数呢?本⽂详细给⼤家介绍了关于python⽤dir函数查看类中所有成员函数的相关内容,下⾯话不多说了,来⼀起看看详细的介绍
吧。
可以使⽤下⾯的代码:
# File: builtin-dir-example-2.py
class A:
def a(self):
pass
def b(self):
pass
class B(A):
def c(self):
pass
def d(self):
getattribute方法返回类型pass
def getmembers(klass, members=None):
# get a list of all class members, ordered by class
if members is None:
members = []
for k in klass.__bases__:
getmembers(k, members)
for m in dir(klass):
if m not in members:
members.append(m)
return members
print('A=> :', getmembers(A))
print()
print('B=> :', getmembers(B))
print()
print('IOError=> :', getmembers(IOError))
输出结果如下:
>>>
==== RESTART: D:/work/csdn/python_Game1/example/builtin-dir-example-2.py ====
A=> : ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__ B=> : ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__ IOError=> : ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof_ >>>
在这个例⼦⾥,输出基类A的成员函数,输出派⽣类B的成员函数。
dir()内置函数作⽤
python内置⽅法有很多,⽆论是初学还是经通python的程序员都不能全部记住所有⽅法,这时候dir()函数就⾮常有⽤了。使⽤dir()函数可以查看对像内所有属于及⽅法,在python中任何东西都是对像,⼀
种数据类型,⼀个模块等,都有⾃⼰的属性和⽅法,除了常⽤⽅法外,其它的你不需要全部记住它,交给dir()函数就好了。
dir()函数使⽤⽅法
dir()函数操作⽅法很简单,只需要把你想要查询和对像添写到( )括号中就可以使⽤了。
例如你想查看列表都有哪些⽅法,你可以在( )中直接传⼊空列表对像[ ]或是⼀个列表数据类型的变量名,像下边这样操作:
>>>dir([ ])
x = ['a','b']
>>>dir(x)
两种操作⽅法所得结果⼀样,都是查看列表都有哪些操作⽅法及属性的。如果你想查字符串,只要把()中的参数变量名或空字符串' '就可以了。
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。