[英]Missing 1 required positional argument: 'y'
我創建了一個 Python class:
class calculator:
def addition(self,x,y):
added = x + y
print(added)
def subtraction(self,x,y):
sub = x - y
print(sub)
def multiplication(self,x,y):
mult = x * y
print(mult)
def division(self,x,y):
div = x / y
print(div)
現在,當我像這樣調用 function 時:
calculator.addition(2,3)
我收到一個錯誤:
add() 缺少 1 個必需的位置參數:'y'
問題是什么? 什么可能是解決方案,以便我可以將其稱為addition(2,3)
?
Python 的類具有三種類型的方法:
實例方法必須將實例 object 作為方法的第一個參數傳遞給self
,例如:
class calculator:
def addition(self, x, y):
added = x + y
print(added)
c = calculator()
c.addition(2, 3)
class 方法使用classmethod
裝飾器,並且必須通過 class object 作為方法的第一個參數,即cls
,如:
class calculator:
@classmethod
def addition(cls, x, y):
added = x + y
print(added)
calculator.addition(2, 3)
static方法沒關系,加個staticmethod
裝飾器就好了,比如:
class calculator:
@staticmethod
def addition(x, y):
added = x + y
print(added)
calculator.addition(2, 3)
因此,如果您只想使用 class object (如calculator.addition(2, 3)
調用,最后兩種方法可能是您的答案。
您必須通過實際聲明此 class 的實例來傳入self
變量,如下所示:
myCalculator = calculator()
myCalculator.addition(2,3)
Output 應該是: 5
請先創建 class 的實例:
calculator_instance = calculator()
然后,您可以調用 function 作為calculator_instance.addition(2,3)
如果您只想添加 function,則不要將其寫為 class 方法,而是將其寫為 function。 如果你需要寫 «calculator.addition(2,3)» 首先做calculator = Calculator()
你只需要刪除自己。 當你有 __init __ function 時將使用 Self
class calculator:
def addition(x,y):
added = x + y
print(added)
def subtraction(x,y):
sub = x - y
print(sub)
def multiplication(x,y):
mult = x * y
print(mult)
def division(x,y):
div = x / y
print(div)
calculator.addition(2,3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.