class class 运行 如果你还没有为那个 class 实例化一个对象,它的方法是怎样的?参考 Python 的测试用例 class
How does a method of a class class run if you haven't instantiated an object for that class? Referring to Python's TestCase class
我对 Python(以及一般的编程)相当陌生,所以这可能是一个菜鸟问题,但我的理解是在 python 中,当您创建一个 class,并在其中创建 X 方法,如果要利用这些方法,则需要实例化 class 或创建 class.
的实例
我正在审查 TestCase
模块(TDD 测试山羊),我注意到我们可以 运行 程序(执行 classes 方法中的所有逻辑) 而无需实际创建任何实例对象来直接“调用”这些方法。
所以我的问题是...运行ning 怎么样?
例如
class AddStuff(TestCase):
def test_equal_two(self):
two = 1 + 1
self.assertEqual(two, 2)
当我 运行 python manage.py test
时,这将 运行,即使我还没有创建 AddStuff
的实例...我不明白...
你是对的,(在所有合理的情况下)需要一个对象来调用普通方法(cf. staticmethod
和 classmethod
) .
使用这种单元测试框架时,您运行的程序(脚本)不是包含此class的文件。你的程序运行自带测试框架;它使用相对高级的语言功能来 发现 class 像这样继承自 TestCase
的对象,创建每个对象的实例,并在这些对象上调用测试函数。
我对 Python(以及一般的编程)相当陌生,所以这可能是一个菜鸟问题,但我的理解是在 python 中,当您创建一个 class,并在其中创建 X 方法,如果要利用这些方法,则需要实例化 class 或创建 class.
的实例我正在审查 TestCase
模块(TDD 测试山羊),我注意到我们可以 运行 程序(执行 classes 方法中的所有逻辑) 而无需实际创建任何实例对象来直接“调用”这些方法。
所以我的问题是...运行ning 怎么样?
例如
class AddStuff(TestCase):
def test_equal_two(self):
two = 1 + 1
self.assertEqual(two, 2)
当我 运行 python manage.py test
时,这将 运行,即使我还没有创建 AddStuff
的实例...我不明白...
你是对的,(在所有合理的情况下)需要一个对象来调用普通方法(cf. staticmethod
和 classmethod
) .
使用这种单元测试框架时,您运行的程序(脚本)不是包含此class的文件。你的程序运行自带测试框架;它使用相对高级的语言功能来 发现 class 像这样继承自 TestCase
的对象,创建每个对象的实例,并在这些对象上调用测试函数。