gpt4 book ai didi

python - 在 main.py/understanding 范围内调用方法

转载 作者:行者123 更新时间:2023-11-30 23:30:22 33 4
gpt4 key购买 nike

如何修复以下场景的范围?我的程序的主要代码(在 main.py 中)最初不在方法中。我想将它放入一个方法中,一旦我将它放入一个方法中并调用它,到处都会出现错误。

如何做到这一点,以便当我将主要代码块放入方法中时,它的运行就像不在方法中一样。

对于 python 和一般编程来说,我是一个新手,所以请原谅我的无知,并请在回答时尽可能简单。谢谢! 导入客户 导入账户 导入交易

def populate():
z1 = Customer.Customer("1234","XXXXX","XXXXXXX","XXXXXX","XXXXXX","XXXXXX","XXXXX")
dict[z1.getCNumber()] = z1
a1 = Account.Account("4321",True,0.00,700.00)
dict[z1.getCNumber()].AddAccount(a1)

def printInfo():
z1.description()
a1.description()

populate()
printInfo()

这会导致 printInfo() 方法出错。 c1 和 a1 变量。我不明白如何解决它。

错误包括: 全局名称“z1”未定义

当我将 z1 = ""和 a1 = ""放在顶部时,这是我得到的错误:

z1.description()
AttributeError: 'str' object has no attribute 'description'

如果在方法之外,所有这些都有效

最佳答案

a1 和 z1 仅存在到 populate 函数结束时。之后,噗的一声,它们就从计算机内存中删除了。这意味着 populate 实际上什么都不做(除了可能会稍微加速处理器)。考虑返回 a1 和 z1 的值,然后将它们作为 printInfo 的参数。或者,如果 printInfo 始终在 populate 之后被调用,则可能只需将代码放入 populate 函数中即可。

另一方面,在您发布的代码中,您似乎甚至没有调用 printInfo,而是调用了 printBank,这会引发错误,因为未定义该错误。

要将它们作为元组返回,您可以在 populate 末尾添加此行:

return (a1, z1)

然后当你调用它时你可以说:

(a, z) = populate()

然后您将 printInfo 的 header 更改为:

printInfo(a1, z1):

所以你可以这样调用它:

printInfo(a,z)

关于python - 在 main.py/understanding 范围内调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20623345/

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