python的dir()用法_Python dir()用法及代码示例

dir()是Python3中强大的内置函数,它返回任何对象的属性和方法的列表(例如函数,模块,字符串,列表,字典等)。

用法:

dir({object})

参数:

object [optional]:Takes object name

返回:

dir() tries to return a valid list of attributes of the object it is called upon. Also, dir() function behaves rather differently with different type of objects, as it aims to produce the most relevant one, rather than the complete information.

For Class Objects, it returns a list of names of all the valid attributes and base attributes as well.

For Modules/Library objects, it tries to return a list of names of all the attributes, contained in that module.

If no parameters are passed it returns a list of names in the current local scope.

代码1:有和没有导入外部库。

# Python3 code to demonstrate dir()

# when no parameters are passed

# Note that we have not imported any modules

print(dir())

# Now let's import two modules

import random

import math

# return the module names added to

# the local namespace including all

# the existing ones as before

print(dir())

输出:

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__',

'__name__', '__package__', '__spec__']

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__',

'__name__', '__package__', '__spec__', 'math', 'random']

代码2:

# Python3 code to demonstrate dir() function

# when a module Object is passed as parameter.

# import the random module

import random

# Prints list which contains names of

# attributes in random function

print("The contents of random library are::")

# module Object is passed as parameter

print(dir(random))

输出:

The contents of random library are::

['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST',

'SystemRandom', 'TWOPI', '_BuiltinMethodType', '_MethodType', '_Sequence',

'_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__',

'__name__', '__package__', '__spec__', '_acos', '_ceil', '_cos', '_e', '_exp',

'_inst', '_log', '_pi', '_random', '_sha512', '_sin', '_sqrt', '_test', '_test_generator',

'_urandom', '_warn', 'betavariate', 'choice', 'expovariate', 'gammavariate', 'gauss',

'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint',

'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform',

'vonmisesvariate', 'weibullvariate']

代码3:对象作为参数传递。

# When a list object is passed as

# parameters for the dir() function

# A list, which conatains

# a few random values

geeks = ["geeksforgeeks", "gfg", "Computer Science",

"Data Structures", "Algorithms" ]

# dir() will also list out common

# attributes of the dictionary

d = {}   # empty dictionary

# dir() will return all the available

# list methods in current local scope

print(dir(geeks))

# Call dir() with the dictionary

# name "d" as parameter. Return all

# the available dict methods in the

# current local scope

print(dir(d))

输出:

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',

'__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',

'__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__',

'__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']

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__',

'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__',

'__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__',

'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__',

'__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items',

'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

代码4:用户定义的-具有可用__dir()__方法的类对象作为参数传递。

# Python3 program to demonstrate working

# of dir(), when user defined objects are

# passed are parameters.

# Creation of a simple class with __dir()__

# method to demonstrate it's working

class Supermarket:

# Function __dir()___ which list all

# the base attributes to be used.

def __dir__(self):

return['customer_name', 'product',

'quantity', 'price', 'date']

# user-defined object of class supermarket

my_cart = Supermarket()

# listing out the dir() method

print(dir(my_cart))

输出:

['customer_name', 'date', 'price', 'product', 'quantity']

应用范围:

dir()有自己的一套用途。它通常用于简单的日常程序中的调试目的,甚至在由开发人员团队承担的大型项目中也是如此。 dir()列出列出传递的参数的所有属性的功能,在分别处理许多类和函数时确实非常有用。

dir()函数还可以列出模块/列表/字典的所有可用属性。因此,它还为我们提供了有关可用列表或模块可以执行的操作的信息,当对模块的了解很少甚至根本没有信息时,这将非常有用。它还有助于更快地了解新模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值