Пример #1
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Show how values map to function arguments.
"""

import inspect
import example
import pprint

for args, kwds in [
    (('a', ), {
        'unknown_name': 'value'
    }),
    (('a', ), {
        'arg2': 'value'
    }),
    (('a', 'b', 'c', 'd'), {}),
    ((), {
        'arg1': 'a'
    }),
]:
    print args, kwds
    callargs = inspect.getcallargs(example.module_level_function, *args,
                                   **kwds)
    pprint.pprint(callargs, width=74)
    example.module_level_function(**callargs)
    print
import inspect
import example

sig = inspect.signature(example.module_level_function)

bound = sig.bind(
    'this is arg1',
    'this is arg2',
    'this is an extra positional argument',
    extra_named_arg='value',
)

print('Arguments:')
for name, value in bound.arguments.items():
    print('{} = {!r}'.format(name, value))

print('\nCalling:')
print(example.module_level_function(*bound.args, **bound.kwargs))
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""Show how values map to function arguments.
"""

import inspect
import example
import pprint

for args, kwds in [
    (('a',), {'unknown_name':'value'}),
    (('a',), {'arg2':'value'}),
    (('a', 'b', 'c', 'd'), {}),
    ((), {'arg1':'a'}),
    ]:
    print args, kwds
    callargs = inspect.getcallargs(example.module_level_function,
                                   *args, **kwds)
    pprint.pprint(callargs, width=74)
    example.module_level_function(**callargs)
    print
# inspect_signature_bind.py

import inspect
import example

sig = inspect.signature(example.module_level_function)

bound = sig.bind(
    'questo è arg1',
    'questo è arg2',
    'questo è un argomento supplementare posizionale',
    extra_named_arg='value',
)

print('Argomenti:')
for name, value in bound.arguments.items():
    print('{} = {!r}'.format(name, value))

print('\nChiamata:')
print(example.module_level_function(*bound.args, **bound.kwargs))