How to launch getattr function in python with additional parameters?

前端 未结 3 1826
栀梦
栀梦 2021-01-31 09:08

I want to call some unknown function with adding parameters using getattr function. Is it possible?

3条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-01-31 09:29

    import sys
    
    
    # function to call
    def wibble(a, b, foo='foo'):
        print(a, b, foo)
    
    
    # have to be in the same scope as wibble
    def call_function_by_name(function_name, args=[], kwargs={}):
        getattr(sys.modules[__name__], function_name)(*args, **kwargs)
    
        
    call_function_by_name('wibble', args=['arg1', 'arg2'], kwargs={'foo': 'bar'})
    # output:
    # arg1 arg2 bar
    

提交回复
热议问题