Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 31, 2007 15:29:39

guest01
От:
Зарегистрирован: 2007-03-24
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по интроспекции

Можно ли узнать во время выполнения какие параметры принимает функция?



Офлайн

#2 Авг. 31, 2007 15:38:52

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по интроспекции

guest01
Можно ли узнать во время выполнения какие параметры принимает функция?
Можно узнать только их количество, но не тип.



Офлайн

#3 Авг. 31, 2007 16:17:38

guest01
От:
Зарегистрирован: 2007-03-24
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по интроспекции

И как узнать количество? Жаль, что нельзя узнать как я их объявил. В смысле название.



Офлайн

#4 Авг. 31, 2007 17:02:32

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос по интроспекции

inspect.getargspec



Офлайн

#5 Сен. 1, 2007 01:50:01

tabajara
От:
Зарегистрирован: 2007-01-02
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по интроспекции

може поможе

>>> def a(q,w,e):
...     u = "g"
...     i = "dvg"
...
>>> fc = a.func_code
>>> dir(fc)
['__class__', '__cmp__', '__delattr__', '__doc__', 
 '__getattribute__', '__hash__', '__init__', '__new__', 
 '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
 '__str__', 'co_argcount', 'co_cellvars', 'co_code',
 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags',
 'co_freevars', 'co_lnotab', 'co_name', 'co_names',
 'co_nlocals', 'co_stacksize', 'co_varnames']
>>> fc.co_nlocals
5
>>> fc.co_varnames
('q', 'w', 'e', 'u', 'i')
>>> fc.co_consts
(None, 'g', 'dvg')
>>> fc.co_argcount
3



Отредактировано (Сен. 1, 2007 01:51:58)

Офлайн

#6 Сен. 1, 2007 13:27:32

guest01
От:
Зарегистрирован: 2007-03-24
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по интроспекции

tabajara
може поможе
>>> def a(q,w,e):
...     u = "g"
...     i = "dvg"
...
>>> fc = a.func_code
>>> dir(fc)
['__class__', '__cmp__', '__delattr__', '__doc__', 
 '__getattribute__', '__hash__', '__init__', '__new__', 
 '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
 '__str__', 'co_argcount', 'co_cellvars', 'co_code',
 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags',
 'co_freevars', 'co_lnotab', 'co_name', 'co_names',
 'co_nlocals', 'co_stacksize', 'co_varnames']
>>> fc.co_nlocals
5
>>> fc.co_varnames
('q', 'w', 'e', 'u', 'i')
>>> fc.co_consts
(None, 'g', 'dvg')
>>> fc.co_argcount
3
Спасибо ) Тоже ничего. Но модуль inspect полностью покрывает мои потребности. Спасибо всем.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version