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

Python中内置函数dir的用法与实例详解

发布时间:2023-09-10 05:34:13

Python是一种简单而强大的编程语言,它提供了一系列的内置函数来简化编程过程。其中一个常用的内置函数是dir(),它用于返回一个对象的所有属性和方法。

dir()函数接受一个参数,这个参数可以是任何Python对象。如果没有提供参数,默认会返回当前作用域的所有属性和方法。dir()函数返回的结果是一个列表,包含了指定对象的所有属性和方法的名称。

下面是dir()函数的具体用法和实例:

1. 返回当前作用域的所有属性和方法

如果不给dir()函数传递任何参数,它将返回当前作用域的所有属性和方法的名称列表。例如:

   print(dir())
   

输出:

   ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
   

这些名称代表了Python解释器在当前作用域中定义的内置变量、函数和模块等。

2. 返回指定对象的所有属性和方法

可以用dir()函数来查看一个对象的所有属性和方法。例如,查看一个整数对象的所有属性和方法:

   x = 10
   print(dir(x))
   

输出:

   ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
   

这些名称代表了整数对象的各种属性和方法,如__add__代表加法操作,__sub__代表减法操作,imag代表虚部等。

3. 用__dir__方法自定义对象的属性和方法

对象可以通过定义__dir__方法来自定义其属性和方法。__dir__方法应该返回一个列表,包含对象的所有属性和方法的名称。例如:

   class MyClass:
       def __dir__(self):
           return ['attr1', 'attr2', 'method1', 'method2']
   
   obj = MyClass()
   print(dir(obj))
   

输出:

   ['attr1', 'attr2', 'method1', 'method2']
   

这样,dir()函数就会返回自定义的属性和方法的名称列表。

总结起来,dir()函数是一个非常有用的内置函数,可以帮助开发者快速查看对象的属性和方法。通过自定义__dir__方法,我们还可以对对象的属性和方法进行自定义,以满足特定的需求。