Home > Article > Backend Development > Introduction to how Python uses the dir function to view all members of a class
This article mainly introduces to you the relevant information about how Python uses the dir function to view all member functions in a class. The article introduces it in detail through the example code. It has certain reference learning value for everyone to learn or use Python. It is needed Friends, please follow the editor to learn together.
Preface
If a class is written by someone else and there is no help document, how to view all member functions? This article introduces you in detail about using the dir function in Python to view all member functions in a class. I won’t say much below, let’s take a look at the detailed introduction.
You can use the following code:
# 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): 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))
The output result is as follows:
>>> ==== 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__', '__str__', '__subclasshook__', '__dict__', '__module__', '__weakref__', 'a', 'b'] B=> : ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__dict__', '__module__', '__weakref__', 'a', 'b', 'c', 'd'] IOError=> : ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__cause__', '__context__', '__dict__', '__setstate__', '__suppress_context__', '__traceback__', 'args', 'with_traceback', 'characters_written', 'errno', 'filename', 'filename2', 'strerror', 'winerror'] >>>
In this example, output the member functions of base class A and output the member functions of derived class B.
dir() built-in function function
There are many built-in methods in python, and both beginners and experienced python programmers cannot remember them all. There are methods, and the dir() function is very useful at this time. You can use the dir() function to view all the attributes and methods in the object. In python, everything is an object, a data type, a module, etc., and has its own attributes and methods. In addition to common methods, you can You don't need to remember it all, just leave it to the dir() function.
dir() function usage method
dir() function operation method is very simple, just put the query you want and The object can be used by adding it to ( ) brackets.
For example, if you want to see what methods are available in a list, you can directly pass in an empty list object [ ] or a variable name of a list data type in ( ), as follows:
>>>dir([ ])
or
x = ['a','b'] >>>dir(x)
The results obtained by the two operation methods are the same, both of which are to check the operation methods and attributes of the list. If you want to check a string, just put the parameter variable name in () or the empty string ' '.
The above is the detailed content of Introduction to how Python uses the dir function to view all members of a class. For more information, please follow other related articles on the PHP Chinese website!