gpt4 book ai didi

python - 如何从另一个模块更改类对象参数(python)

转载 作者:太空宇宙 更新时间:2023-11-03 18:05:56 25 4
gpt4 key购买 nike

所以我四处寻找,但找不到答案。我正在寻找更改模块中主文件中创建的对象的参数。例如,我在这里用一段简单的代码对此进行测试:

-这是我的主文件,我从中创建对象并定义一些属性

import class_test_2

class dog():
name=''
spots=0

def add_spots(self):
self.spots+=1

def main():

fido=dog()
fido.name='Fido'

print('Fido\'s spots: ',fido.spots)

fido.add_spots()

print('Fido\'s spots: ',fido.spots)

class_test_2.class_test()

print('Fido\'s spots: ',fido.spots)


if __name__=='__main__':
main()
<小时/>

-这是模块,我想从中使用函数来更改主文件中的属性

from class_test_1 import dog

def class_test():
fido.add_spots()

-所以我的问题是我该怎么做/为什么上面的这段代码不起作用?单独运行 main 函数会显示 fido 的 Blob 每次打印时都会增加 1。然而,运行调用该模块的代码会出现 NameError,因此即使我已设法导入该类,我的模块也无法识别该类的存在。预先感谢您的帮助。

最佳答案

您的变量“fido”仅在您的“main”函数中定义。您必须为“class_test”函数提供变量。

例如:

 class_test_2.class_test(fido)

然后你的class_test函数得到一个参数。您可以自由选择名称。我在示例中使用了 the_dog:

def class_test(the_dog):
the_dog.add_spots()

在本例中,the_dog 指向与 fido 相同的 dog 类实例。

关于python - 如何从另一个模块更改类对象参数(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26915510/

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