尝试在不使用函数其他部分的情况下使用返回值

2024-09-27 21:32:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常简单的函数,返回一个值。你知道吗

def GetNumber():
    Number = 45
    print("Getting Number")
    print("Found Number = " + str(Number))
    return Number

def UseNumber(current):
    print("The current number is: " + str(current))

UseNumber(GetNumber())

但是,我的输出如下:

Getting Number

Found Number = 45

The current number is: 45

我在应用程序的另一部分中使用了def GetNumber中的打印输出,因此我需要将它们保留在那里,但是我想从GetNumber中提取值,而不必每次都重新运行整个GetNumber函数。你知道吗

如何使用返回值而不让它实际运行整个函数并打印出来?你知道吗

理想情况下,我希望我的输出是:

The current number is: 45

这有可能吗?你知道吗


Tags: the函数应用程序numberreturnisdefcurrent
3条回答

您可以添加一个函数参数,允许您在函数中打印或不打印:

def GetNumber(print_num=False):
    number = 45

    if print_num:
        print(number)

    return number

GetNumber(True)

num = GetNumber()

print("my num is: {}\n".format(num));

GetNumber(True)将从函数中打印出数字,而GetNumber()只返回数字而不打印。请注意,在我上面的示例中,它返回的数字与print_num的设置无关。你可以使用它,或者干脆忽略它。你知道吗

我们设置print_num=False。这意味着如果参数没有被发送进来,我们就为它设置一个默认值False。你知道吗

你的要求不能这样做。处理这个问题的一种方法是重构代码,将不同部分中使用的部分分解成不同的函数,然后在需要的地方调用所需的部分。在本玩具示例中,这可以通过以下方式实现:

def get_number():
    number = 45
    return number

def print_number(number):
    print(number)

number1 = get_number()
print_number(number1)

number2 = get_number()
print("my number is: {}\n".format(number2))

这样可以更好地分离逻辑和ui。你知道吗

通常,您需要一些分支控件来指定要执行的函数部分,这样就不会编写死代码。但为了纯粹回答您的问题,返回值将中断函数的执行。示例如下:

def GetNumber():
    Number = 45
    return Number
    print("Getting Number")
    print("Found Number = " + str(Number))

这只会返回45。但是,这不是编写此方法的最佳方式,因为这些print语句永远不会执行。我建议编写一个新方法,删除不需要的代码,或者引入一些分支条件(ifelse)。对不起,我的第一个模糊的回答。你知道吗

相关问题 更多 >

    热门问题