简体   繁体   English

如何使 function 的参数像变量字符串方法一样

[英]How to make parameter of function act like variable string methods

I want to make function that gets parameter and use it as a method in it.我想制作获取参数的 function 并将其用作其中的方法。 Here is what I'm trying to do with string.upper().lower() methods.这是我试图用 string.upper().lower() 方法做的事情。

def caps_lock(case, string):
    print(string.case())


string = 'Hello World'

caps_lock(upper, string)
caps_lock(lower, string)

expected result预期结果

>HELLO WORLD
>hello world

You could do:你可以这样做:

def caps_lock(func, string):
    print(func(string))


string = 'Hello World'

caps_lock(str.upper, string)
caps_lock(str.lower, string)

This is also an option, technically, but I do not recommend it:从技术上讲,这也是一种选择,但我不推荐它:

def caps_lock(func_name, string):
    print(getattr(string, func_name)())


string = 'Hello World'
caps_lock("upper", string)
caps_lock("lower", string)
def do(obj,method,*params):
    getattr(obj,method)(*params)
    
class Testobj:
    def bla(self,*args):
        print("bla")
        print(args)

do(Testobj(),"bla",1,2,3,4)

#prints: bla (1, 2, 3, 4) #prints: bla (1, 2, 3, 4)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM