python dir(function)vs dir('function')

时间:2019-08-08 13:25:27

标签: python

我一直在阅读有关dir函数的信息,这是w3schools的解释。

  

定义和用法

     

dir()函数返回指定的所有属性和方法   对象,没有值。

     

此函数将返回所有属性和方法,甚至   内置属性,默认为所有对象。

     

语法

     

dir(object)

     

其中object是对象   您想查看的有效属性

然后我尝试使用dir(print)dir('print')之类的不同值进行尝试,并观察到它们正在产生不同类型的输出。

目录(打印)

>>> dir(print)
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
>>> 

dir('print')

>>> dir('print')
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> 

我的问题是这2个有什么区别?在此示例中,dir()dir('function')dir(print)dir('print')相比。

1 个答案:

答案 0 :(得分:4)

dir('print')

您正在将字符串传递给dir(),因此它为您提供了str类的所有属性和方法。 正如BlueRine所说:

  

dir('dasdasd') == dir('print')将始终返回True