📅  最后修改于: 2023-12-03 15:27:49.588000             🧑  作者: Mango
在 Python 中,我们可以通过一些内置函数来获取一个实例的所有方法。这些函数包括:
dir()
:返回对象的所有属性和方法的列表。vars()
:返回对象的 __dict__
属性(即对象的命名空间)。dir()
函数dir()
函数返回对象的所有属性和方法的列表。对于模块、类、实例以及其他任何对象,都可以使用该函数来获取其属性和方法。
class MyClass:
def __init__(self):
self.name = "John"
self.age = 30
def say_hello(self):
print("Hello, I'm", self.name)
obj = MyClass()
print(dir(obj))
输出:
['__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__', 'age', 'name', 'say_hello']
可以看到,dir()
返回了对象 obj
的所有属性和方法的列表。
vars()
函数vars()
函数返回对象的 __dict__
属性(即对象的命名空间)。该函数只能用于实例对象。对于其他类型的对象(如模块或类),使用该函数会抛出一个 TypeError
异常。
class MyClass:
def __init__(self):
self.name = "John"
self.age = 30
def say_hello(self):
print("Hello, I'm", self.name)
obj = MyClass()
print(vars(obj))
输出:
{'name': 'John', 'age': 30}
可以看到,vars()
返回了对象 obj
的 __dict__
属性,即对象的命名空间,其中包含了对象的所有属性。注意,方法不在此列。
通过 dir()
和 vars()
函数,我们可以获取一个实例的所有方法和属性。需要注意的是,dir()
函数返回的是包含所有属性和方法的列表,而 vars()
函数只返回实例的属性(不包括方法)。