欢迎访问宙启技术站
智能推送

Python中的dir函数是什么?如何使用它来查询对象方法和属性?

发布时间:2023-07-06 04:42:40

dir()函数是Python中的一个内建函数,用于返回一个列表,该列表包含指定对象的属性和方法。如果没有传入参数,dir()函数将返回当前作用域的所有名称。这个函数在编写代码时经常用到,它可以帮助我们快速了解一个对象的所有属性和方法,从而方便编写代码。

使用dir()函数来查询对象的方法和属性非常简单。只需在函数中传入要查询的对象,然后它将返回该对象的所有属性和方法的列表。下面是一个简单的例子:

class MyClass:
    def __init__(self):
        self.my_attribute = 10
    
    def my_method(self):
        print("Hello, World!")
        
my_object = MyClass()

print(dir(my_object))

以上代码定义了一个名为MyClass的类,该类包含一个属性my_attribute和一个方法my_method。然后创建了一个my_object的实例,并使用dir(my_object)来查看该实例的属性和方法。

运行该代码,输出如下:

['__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__', 'my_attribute', 'my_method']

以上返回的列表包含了MyClass类的所有内建属性和方法,以及我们自定义的my_attribute属性和my_method方法。

需要注意的是,dir()函数返回的列表包含了对象的所有属性和方法,包括内建的特殊方法和属性。这些特殊方法和属性通常以双下划线开头和结尾,例如__init____eq__。编写代码时通常只关心自定义的属性和方法,可以通过过滤列表来查看有用的属性和方法。例如,可以使用列表推导式来过滤掉以双下划线开头和结尾的属性和方法:

print([item for item in dir(my_object) if not item.startswith('__')])

以上代码输出:

['my_attribute', 'my_method']

通过以上的说明,我们可以看出,dir()函数是一个非常实用的工具,它可以帮助我们快速查看对象的属性和方法,使我们在编写代码时更加高效。