gpt4 book ai didi

python - Python包装函数

转载 作者:行者123 更新时间:2023-12-03 07:56:22 25 4
gpt4 key购买 nike

我在任何地方都找不到解决问题的方法,因此也许可以在这里找到答案。
基本上,我尝试使用另一个函数打印一个元组,然后尝试将该输出包装到另一个函数中。如果我将文本包装在wrapd_string_linesplit()函数旁边,则它可以完美工作,但我基本上不希望这样。
也许有人可以解释我的错误在哪里,以及从另一个函数包装它的好办法是什么。提前致谢
工作解决方案:

def wrapped_string_linesplit(arg):
print('#' * 30)
for item in arg:
print(item)
print('#' * 30)


def welcome_message():
first = 'Welcome to xyz'.center(30, ' ')
second = ('#' * 30).center(30, ' ')
third = 'New Game'.center(30, ' ')
fourth = 'Load Game'.center(30, ' ')
fifth = 'About'.center(30, ' ')
sixth = 'Quit Game'.center(30, ' ')
return first, second, third, fourth, fifth, sixth

wrapped_string_linesplit(welcome_message())
输出:
##############################
Welcome to xyz
##############################
New Game
Load Game
About
Quit Game
##############################
然后将代码更改为以下内容,根本不会出现错误而完全不打印换行:
def message_wrapper(foo):
def wrap():
print('#' * 30)
foo()
print('#' * 30)
return wrap


def string_linesplit(arg):
for item in arg:
print(item)

message_wrapper(string_linesplit(welcome_message()))
输出:
        Welcome to xyz
##############################
New Game
Load Game
About
Quit Game
##############################
我根本不理解的下一个,引发错误
foo()
TypeError:“NoneType”对象不可调用
在message_wrapper()中调用foo()时。
为什么它必须具有返回值才能从另一个函数调用?
def message_wrapper(foo):
print('#' * 30)
foo()
print('#' * 30)


def string_linesplit(arg):
for item in arg:
print(item)

message_wrapper(string_linesplit(welcome_message()))

最佳答案

我对给定的代码片段感到困惑,但是如果我必须处理给定的代码片段并如上所述给出输出:

def welcome_message():
first = 'Welcome to xyz'.center(30, ' ')
second = ('#' * 30).center(30, ' ')
third = 'New Game'.center(30, ' ')
fourth = 'Load Game'.center(30, ' ')
fifth = 'About'.center(30, ' ')
sixth = 'Quit Game'.center(30, ' ')
return first, second, third, fourth, fifth, sixth


def string_linesplit(arg):
for item in arg:
print(item)

def message_wrapper(foo):
print('#' * 30)
string_linesplit(foo())
print('#' * 30)

message_wrapper(welcome_message)
输出:
##############################
Welcome to xyz
##############################
New Game
Load Game
About
Quit Game
##############################

关于python - Python包装函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63687231/

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