有没有更好的方法将方法作为参数传递?

我对编程有点陌生,所以如果这很明显,我很抱歉:有没有比下面显示的更好的方法来将方法作为参数传递?

下面的代码接受一个字符串并打印出其中是否有任何数字、大写/小写字符等:


    s = input()

    def func1(string):
        return string.isalnum()

    def func2(string):
        return string.isalpha()

    def func3(string):
        return string.isdigit()

    def func4(string):
        return string.islower()

    def func5(string):
        return string.isupper()

    def stringthing(func, s):
        for i in range(0, len(s)):
            if func(s[i]):
                return True

        return False 

    print(stringthing(func1, s))
    print(stringthing(func2, s))
    print(stringthing(func3, s))
    print(stringthing(func4, s))
    print(stringthing(func5, s))

这有效,但它可以更紧凑吗(即不制作 5 个新功能)?我在那里找不到任何东西,但也许我不知道我在寻找什么。

回答

您可以str直接使用以下类方法:

print(stringthing(str.isalnum, s))
print(stringthing(str.isalpha, s))
print(stringthing(str.isdigit, s))
print(stringthing(str.islower, s))
print(stringthing(str.isupper, s))


以上是有没有更好的方法将方法作为参数传递?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>