gpt4 book ai didi

python - 我应该如何导入类模块以对其进行测试

转载 作者:太空狗 更新时间:2023-10-30 02:22:04 25 4
gpt4 key购买 nike

在线搜索在这方面的帮助不大。我只是想创建一个包含几个类的模块并对其进行测试。我没能通过第一部分。我创建了一个具有 3 个属性及其 getter 方法的简单类,因此我从“main”方法中看到了它们的属性(我猜)

我需要创建这个类的一些对象,以便以后使用。

类定义是

class Person:
def __init__(self, n, a, s):
self.name = n
self.age = a
self.sex = s
def getAge(self):
return self.age
def getSex(self):
return self.sex

我将这个文件保存在一个 test.py 文件中,我从 shell 中导入它,但是当我实例化和对象时我总是遇到同样的错误

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
x = Person('myname', 10, 'm')
NameError: name 'Person' is not defined

test.py 位于 C:/Python3.x 目录中,所以我真的没有得到这个错误。

当我只是在 shell 中键入整个类并实例化对象时,一切正常,但在我的情况下这毫无用处,因为模块会随着时间的推移而增长。

请仅在您愿意提供帮助的情况下回答,不要将我发送到相同的教程,这些教程没有 shell 就无法解释任何内容。我需要使用模块并理解我收到的错误的含义。

最佳答案

您的类可能应该派生自 object,但这不是错误的原因。您可能正在尝试访问未明确导入的名称。您可以导入整个模块,也可以导入模块的名称。

import test
test.Person()

或者

from test import Person
Person()

或者两者兼而有之。没有错误,但也没有多大意义。

你可能想输入 from test import * 来模仿其他语言的行为,但在大多数情况下,这在 python 中被认为是不好的风格。显式优于隐式。

要了解有关导入工作原理的更多信息,请尝试import test 然后是dir(test)。或者 import itertoolsdir(itertools),或者下载一些不错的代码库,比如 Werkzeug ,阅读代码以查看其结构,然后尝试通过 REPL 导航它。

关于python - 我应该如何导入类模块以对其进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12604466/

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