dir函数带参数和不带参数作用域不一样
不带参数:返回当前范围内的变量、方法和定义的类型列表,如图:
test_1 = dir()
print(test_1)
#输出 ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
import os
test_2 = dir()
print(test_2) #会输出定义的test_1和导入的os模块
# 输出['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'os', 'test_1']
带参数:返回参数的属性、方法列表,这个参数可以是任意,比如dir(‘1’)会返回字符串相关属性方法,dir(list)会返回列表相关属性方法,如图是标准库dir(time)的结果:
import time
test_3 = dir(time)
print(test_3)
# 输出['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname']