2013-03-05 2 views
0

Когда я типа dir() в питона, он может показать все переменные видимые, такие как:Как перечислить всю переменную определенного типа в python?

>>> dir() 
['ACCT', 'ACEV', 'ALLOW_THREADS', 'ANNOTE_FONT', 'Annotation', 'AnnoteFinder', 'Arrow', 'Artist', 'AutoLocator', 'Axes', 'BS_KM', 'BUFSIZE', 'Button', 'CF_KM'] 

Теперь я хочу функцию, которая может перечислить все переменные определенного типа, например «str», путем:

>>list_all_variable_of_type(str) 

Он вернет список переменных, тип которых является «str».

Как написать функцию 'list_all_variable_of_type() '?

ответ

8

dir просто показывает названия. Для доступа к фактическим переменным вам понадобится globals(). Так, вероятно:

[name for name, value in globals().items() if isinstance(value, basestring)] 

(Обратите внимание, что если вы полагаетесь на это, чтобы получить доступ неизвестного набора переменных, вы, вероятно, делаете это неправильно, вы должны хранить свои данные в общей структуре данных, как Dict.)

+0

Спасибо за советы. – bigbug

Смежные вопросы