一、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语言。