您的位置:

Python dir参数的用法解析

一、dir()函数及基本用法

Python中的dir()函数是一个非常有用的函数,可以返回任何对象(模块、函数、变量,等等)的属性列表。如果没有提供参数,那么它将返回当前作用域内的所有名称。关于dir()函数的基本用法,我们可以通过下面的示例进行演示:

# 示例1
>>> a = [1, 2, 3, 4]
>>> dir(a)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', 
'__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', 
'__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', 
'__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 
'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

# 示例2
>>> import math
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 
'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 
'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 
'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'm', 'modf', 
'multiply', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 
'subtract', 'tan', 'tanh', 'tau', 'trunc']

# 示例3
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'math']

从上面的三个例子可以发现,dir()函数能返回一个由字符串组成的列表。列表中包含有对象所定义的名称、方法名称等。值得注意的是,列表中包括两种类型的名称:属性和方法。

二、dir()函数的参数

dir()函数也可以接收参数,用于指定所要返回信息的类型。下面我们来了解一下Dir函数在不同情况下的参数设定

>dir()函数的一般用法

dir()函数不需要参数

>>> a = 1
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a']

>dir()函数指定模块名

dir(moduleName)函数可以返回指定模块内部的属性,包括函数、变量、类和子模块等。

# 例子1
import os
print(dir(os))

# 例子2(from…import写法)
from os import *
print(dir())

>dir()函数指定类名

dir(className)可以查看该类中的属性和方法(包含继承自父类的属性)。

# 例子
class MyClass():
    a = 1
    def __init__(self):
        self.b = 2
    def func(self):
        print('func called')

print(dir(MyClass))

>dir()函数指定对象

dir(objectName)返回该对象所有属性和方法。这个object可以是任何类型。例如:一个字符串类型、整型、列表、元组、自定义对象等。

# 例子1(自定义对象)
class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

stu = Student('Jerry', 18)
print(dir(stu))

# 例子2(字符串类型)
str = 'hello'
print(dir(str))

三、小结

dir()函数是Python编程中常用的一个函数,通过查看获取对象的属性和方法列表,大大提高了我们的编程效率。这个函数非常容易使用,可以指定多种参数,对不同的对象进行操作,可以让我们更好地理解和使用Python语言。