继承:如何调用父类的方法? [已关闭]

问题描述 投票:0回答:1

我做了以下3节课。

India
States
的父类,
States
District
的父类。我定义了 1 个
District
类的对象。当我尝试运行
India
类的方法时,出现错误。请帮助我如何运行它。

class India:
    def __init__(self):
        print("Country is India")
    def functionofindia(number):
        rvalue=number*2
        return rvalue   

    
class States(India):
    def __init__(self,nameofstate):
        super().__init__()
        print("state is {}".format(nameofstate))


class District(States):
    def __init__(self,nameofstate, nameofdistrict):
        super().__init__(nameofstate)
        print("District is {}".format(nameofdistrict))


HP=District("abc","xyz")
print(HP.functionofindia(2))

错误是:

Country is India
state is abc
District is xyz
Traceback (most recent call last):
  File "c:\Users\DELL\OneDrive\Desktop\practice\oops.py", line 23, in <module>
    print(HP.functionofindia(2))
TypeError: functionofindia() takes 1 positional argument but 2 were given
python object-oriented-analysis
1个回答
3
投票

要使用这样的类方法,您应该将

self
作为方法定义中的第一个参数传递。所以你的印度班就变成了:

class India:
    def __init__(self):
        print("Country is India")
    def functionofindia(self, number):
        rvalue=number*2
        return rvalue

当该方法与类的任何属性无关时,也可以将其替换为静态方法。请参阅此处了解有关静态方法的更多信息。印度用静态方法:

class India:
    def __init__(self):
        print("Country is India")

    @staticmethod
    def functionofindia(number):
        rvalue=number*2
        return rvalue
© www.soinside.com 2019 - 2024. All rights reserved.