我试图将两个函数作为参数传递,但函数str.upper
和str.strip
有一个错误。我不知道我做错了什么?
def normalize_text(func1, func2):
return func2(func1)
def my_strip(s):
return str.strip(s)
def my_upper(s):
return str.upper(s)
def test():
if(normalize_text(my_strip, my_upper)(' foo ') == 'FOO'):
print('Success')
test()
运行这样的代码python main.py
... 然后我面临一个错误:
TypeError: descriptor 'upper' requires a 'str' object but received a 'function'
您正在将func2
传递给func1
,但是func1
需要一个字符串作为其参数,因此需要传递对某个对象调用func2
的结果。
normalize_text
可以返回一个lambda,该lambda调用输入参数上的两个函数。
def normalize_text(func1, func2):
return lambda s: func1(func2(s))
您的职能应遵循以下原则:
def normalize_text(func1, func2):
def func3(s):
return func2(func1(s))
return func3
函数1和函数2都接受一个字符串作为输入,并返回一个字符串。因此,当链接在一起时,一个应该处理另一个的输出,而不是函数本身。
问题内容: 我有一个变量,其日期格式为2015年4月25日。我正在尝试将其转换为以下内容: 但是我遇到了这个错误: 我该如何解决? 问题答案: 你有一个对象。该函数需要一个datetime对象。下面的代码需要你的转换的中间步骤的使用 此时,是日期时间对象。这意味着我们可以轻松地将其转换为任何格式的字符串。在您的特定情况下: 在现在是:
我正在创造一个游戏。我写了这段代码来创建一个精灵和它的hitbox: 我原本把 但是后来我得到了一个错误,告诉我我的参数需要是pyplay。表面不是没有。 但是,当我将代码更改为时,它给出了以下错误代码:我该怎么办?
以下是尝试使用套接字修改用户提供的输入的代码: 当我执行它并提供输入时,会发生以下错误: 我能做些什么来解决这个问题?
我刚到爪哇。我正在学习将图像和其他数据从db检索到JTable的教程。数据将首先检索到ArrayList中,我得到了一个错误,说array是必需的,但object是找到的。我已经添加了我所有的代码。错误在文件中。如有任何帮助,不胜感激。 course.java
我得到一个“TypeError:需要一个类似字节的对象,而不是'str'”。我在使用StringIO时遇到了一个错误“TypeError:initial_值必须是str或None,而不是bytes”,我在使用Python 3.7。 我也得到这个函数同样的错误。"返回pickle.load(打开(DATA_FILE))"
问题内容: 几年前,我正在使用一个先前提出的问题的代码,但是,我认为这已经过时了。尝试运行代码,我收到上述错误。我仍然是Python的新手,因此无法从类似的问题中得到很多澄清。有人知道为什么会这样吗? 追溯 问题答案: 默认情况下返回stdout或stderr流的对象。这意味着您还需要在针对这些对象的操作中使用对象。使用对象。使用字节文字(注意前缀): 或先解码数据(如果您知道所使用的编码)(通常