如何调用class中的方法?

How to call method in the class?

我正在使用 classes 练习,但我不知道如何正确使用它们。

这里我想把class放到另一个文件里,里面的代码是:

class TestClass:
    def repeat(txt:str, num:int):
        counter = 0
        while counter < num:
            print(txt)
            counter = counter + 1

创建对象后无法调用方法。这是代码:

testing2 = testing.TestClass()
testing2.repeat('test', 10)

错误:

#the error is: TypeError: TestClass.repeat() takes 2 positional arguments but 3 were given

我认为这是一个小问题,但解释它的解决方案将对我的理解有很大帮助。

创建class时,需要遵循class实现的基本原则。您忘记了初始化您 class 的 __init__ 函数,您的代码需要如下所示:

class TestClass:
    def __init__(self):
        super().__init__()
        
    def repeat(self, txt:str, num:int):
        counter = 0
        while counter < num:
            print(txt)
            counter = counter + 1

然后一切正常

testing2 = TestClass()
testing2.repeat('test', 10)
#test
#test
#test
#test
#test
#test
#test
#test
#test
#test
class TestClass:
    def repeat(self, txt:str, num:int):
        counter = 0
        while counter < num:
            print(txt)
            counter = counter + 1

向 def 定义添加一个参数 (self)。 您还可以像这样初始化 class:

testing2 = TestClass()
testing2.repeat('test', 10)