gpt4 book ai didi

python - 从单独的文件导入类

转载 作者:太空狗 更新时间:2023-10-30 02:34:13 24 4
gpt4 key购买 nike

所以我正在努力通过弄乱 python 中的类来熟悉面向对象的编程。下面是我 [尝试] 在解释器中实现的一个简单代码。

class Test(object):

def set_name(self, _name):
name = _name

def set_age(self, _age):
age = _age

def set_weight(self, _weight):
weight = _weight

def set_height(self, _height):
height = _height

当我启动 python 时,我运行以下命令:

>>>import Test
>>>Test.set_name("Sean")

然后我收到这个回溯:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'set_name'

我的所有内容都基于发现的官方模块文档 here .

我已经阅读了很多关于 OOP 的文档,但我仍然很新,所以我确信我的脑子里还有一些东西。这个错误是什么意思?

在此先感谢您的帮助。

最佳答案

看起来您正在导入模块 测试。在名为 Test 的模块中是否有一个名为 Test 的类?

如果是这样,您需要直接将类导入为 from Test import Test 或者,如果您只想导入模块,则需要将您的类引用为 Test.Test

编辑:关于 unbound method set_name() 错误。您需要在类实例上调用 set_name 方法,而不是直接在类上调用。 Test().set_name("Sean") 将起作用(注意创建实例的 Test 之后的 ())。

set name 方法需要类 Test 的实例作为第一个参数 (self)。因此,如果未在实例上调用该方法,则会引发错误。通过显式提供实例作为第一个参数,可以直接从类中调用它。

关于python - 从单独的文件导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365955/

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