怎样在Python中查询一个类或一个对象有哪些属性(方法(成员函数)、变量)?
答:用函数dir()
查询对象有哪些方法的示例代码如下:
dict1 = {'name': 'suwenhao', 'likes': 'reading', 123: 456}
print(dir(dict1))
运行结果如下:
C:\Users\Administrator\AppData\Local\Programs\Python\Python39\python.exe E:/Project/PycharmProjects/P-001/Files/P-001/current/001-00-临时测试脚本.py
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
查询类有哪些方法的示例代码如下:
print(dir(dict))
运行结果如下:
C:\Users\Administrator\AppData\Local\Programs\Python\Python39\python.exe E:/Project/PycharmProjects/P-001/Files/P-001/current/001-00-临时测试脚本.py
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
可见,两个示例代码的运行结果是一样的。
这说明查询对象有哪些方法实际上就是查询对象的类的方法。
再来一个简单的例子,从这个简单的例子大家可以看出函数dir()也能把变量列出来。
class Person:
name = "Bill"
age = 19
country = "USA"
x1 = dir(Person) # 返回类的所有属性
运行结果如下: