我做了以下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
要使用这样的类方法,您应该将
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