【发布时间】:2014-08-10 18:41:06
【问题描述】:
dir() 函数返回方法的列表,但是:
结果列表按字母顺序排序
我想知道哪些是按字母顺序排列的。我用这个名字来帮助理解这个方法是做什么的。我使用像 game_start、game_battle、game_map 这样的名称。我可以将名称更改为开始、战斗、地图,但如果我想对 tkinter 应用程序中的所有其他方法使用相同的提交方法。所以我需要按照声明的顺序来评估方法的名称。
还有其他解决方法吗?
示例:
class hi(object):
def __init__(self):
self.name="LLopis"
def question(self):
print("Question?")
def answer(self):
print("Answer")
dir(hi) 的结果是:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'answer', 'question']
我想要一个返回的函数(或私有方法的内部顺序,但按查找顺序):
['__init__', 'question', 'answer']
编辑:我不关心 hi.name 之类的属性,因此虽然 this question 是相关的,但它并不是完全重复的。
【问题讨论】:
-
“内部”订单是字典,因此未排序。
-
为什么按字母顺序排序是个问题?你想要它们在源代码中出现的顺序吗?如果是这样,您想以何种方式实现这一目标?
-
我想按照我在类中编写它们的顺序使用我定义的方法,但我不想用想要的顺序定义一个列表或更改方法的名称。
-
你用的是什么版本的 Python?
-
“我不想用想要的顺序定义一个列表或更改方法的名称。”我想不出这会成为主要问题的场景。
标签: python