我在 Python 解释器中运行以下命令:
some_list = []
methodList = [method for method in dir(some_list) if (callable(getattr(some_list, method)) and (not method.find('_')))]
我想要的是获取特定对象的所有方法名称的列表,但用下划线命名的方法除外,即__sizeof__
这就是为什么我在上面的代码中嵌套了 if 语句:
if (callable(getattr(some_list, method)) and (not method.find('_')))
但内容methodList
是:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__']
确实,与我的预期完全相反。
当字符串无法包含字符串时,不应该not method.find('_')
只返回 true吗?method
'_'