powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python вложаные функции
2 сообщений из 2, страница 1 из 1
Python вложаные функции
    #39880431
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чужих исходниках наткнулся на подобое:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
def make_configs_update(_type):
    
    def _update(instance):
        try:
            req_body = instance.query_body()

            if _type in rbzdb.SPECIAL_TYPES:
                _inputs = {
                    'args_analysis_arg': {
                        'args_analysis_conf_id': req_body.get('args_analysis_conf_id', None),
                        'arg_type': req_body.get('type', 'arguments'),
                        '_doc': req_body.get('data', {}),
                        '_id': req_body.get('_id', None)
                    }
                }
                ..........................................................................
...............................................................................

    _update.__name__ = 'update_' + _type
    return _update



что здесь делает вложеная функция и откуда она получает свой параметр.
...
Рейтинг: 0 / 0
Python вложаные функции
    #39881820
activate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

в примере основная функция динамически создает функцию на основании вложенной функции _update().
Сама функция _update() в данном примере не вызывается .


вот упрощенный пример из консоли
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
>>> def my_funct_maker(funct_name):
...   def _funct_template(param):
...     return param
...   _funct_template.__name__ = funct_name
...   return _funct_template
... 
>>> func1 = my_funct_maker('foo')
>>> func2 = my_funct_maker('bar')
>>> 
>>> func1('a string')
'a string'
>>> func2('a string')
'a string'
>>> func1.__name__
'foo'
>>> func2.__name__
'bar'
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python вложаные функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]