gpt4 book ai didi

python - 将方法传递给Python中的函数

转载 作者:行者123 更新时间:2023-11-28 22:45:17 27 4
gpt4 key购买 nike

我试图将一个方法,特别是字符串类的一个方法,传递给一个将运行它的函数。我的代码看起来像:

def foo (list):
for in_str in list[0]:
print(in_str.list[1]())

# format of list
list = [
[["Hello world!", "helloworld"], str.isalpha]
]

该函数所需的操作是对字符串 in_str 调用 isalpha 方法,然后打印结果。这不起作用,因为 in_str 显然没有属性列表,但我想知道如何使 list[1] 引用该方法。

有什么建议吗?

谢谢!

最佳答案

def foo (l):
for in_str in l[0]:
print(l[1](in_str))

# format of list
l = [["Hello world!", "helloworld"], str.isalpha]
print(foo(l))

您需要将一个字符串传递给str.isalpha,并且列表中还有一对额外的括号。

In [2]: foo(l)
False
True

如果你只想传递一个函数,那么将它作为参数传递,并且只传递一个字符串列表:

def foo(l, func):
for in_str in l[0]:
print(func(in_str))


l = ["Hello world!", "helloworld"]

print(foo(l,str.isalpha))

更好的方法可能是使用 map 将函数映射到每个字符串:

def foo(l,func):
return map(func,l) # list(map(...) python 3

print(foo(l,str.isalpha))

关于python - 将方法传递给Python中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com