Я пытаюсь обернуть встроенную функцию dir()
, чтобы отсортировать результаты. Если я определю и передам аргумент, он будет работать нормально. Однако, если я попытаюсь заставить его показать пространство имен root, он не будет работать, потому что он либо требует аргумента, либо получает пустой объект, для которого вместо него возвращаются атрибуты.
Я попытался переопределить его вместо def dirs(*function):
argv, но это возвращает список, а не текущую область.
Есть ли способ обернуть это встроенное с той же функциональностью? Я не знаю C, поэтому встроенный исходный код мне не сильно помог, поиск показывает много результатов для файлов в каталогах, но я не могу найти, как взломать этот.
def dirs(function):
print '{}'.format(type(function))
try:
for i in sorted(dir(function)):
print '{}'.format(i)
except:
for i in sorted(dir()):
print '{}'.format(i)
Я перепробовал все типы данных, которые мог придумать, но я не могу воспроизвести поведение эталонного поведения ниже.
print '# first for reference, a sorted dir()'
for i in sorted(dir()):
print '{}'.format(i)
print '# next up: double quoted string'
dirs("")
print '# next up: None'
dirs(None)
print '# next up: empty dictionary'
dirs({})
print '# next up: empty set'
dirs(())
print '# next up: empty list'
dirs([])
Вот пример выходных данных , усеченный для краткости.
# Result:
# first for reference, a sorted dir()
FnOpenPluginInstaller
__allcompletions
[...]
tools_dir
windowContext
# next up: double quoted string
<type 'str'>
__add__
__class__
[...]
upper
zfill
# next up: None
<type 'NoneType'>
__class__
__delattr__
[...]
__str__
__subclasshook__
# next up: empty dictionary
<type 'dict'>
__class__
__cmp__
[...]
viewkeys
viewvalues
# next up: empty set
<type 'tuple'>
__add__
__class__
[...]
count
index
# next up: empty list
<type 'list'>
__add__
__class__
[...]
reverse
sort