takes no arguments (1 given)” but I gave none

前端 未结 3 761
走了就别回头了
走了就别回头了 2020-12-15 04:39

I am new to Python and I have written this simple script:

#!/usr/bin/python3
import sys

class Hello:
    def printHello():
        print(\'Hello!\')

def ma         


        
3条回答
  •  眼角桃花
    2020-12-15 05:27

    If you want printHello as instance method, it should receive self as argument always(ant python will pass implicitly) Unless you want printHello as a static method, then you'll have to use @staticmethod

    #!/usr/bin/python3
    import sys
    
    class Hello:
        def printHello(self):
            print('Hello!')
    
    def main():
        helloObject = Hello()
        helloObject.printHello()   # Here is the error
    
    if __name__ == '__main__':
        main()
    

    As '@staticmethod'

    #!/usr/bin/python3
    import sys
    
    class Hello:
        @staticmethod
        def printHello():
            print('Hello!')
    
    def main():
        Hello.printHello()   # Here is the error
    
    if __name__ == '__main__':
        main()
    

提交回复
热议问题