0
所以這是我的計算,我試圖做的是要了解類裝飾更好我已經在Python中用OOP方式創建了一個簡單的計算器。我得到一個錯誤信息,說我的變量沒有被定義
class Calc():
@staticmethod
def add(x, y):
return x + y
.
.
.
@staticmethod
def div(x, y):
return x/y
@staticmethod
def get_numbers():
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
return num1, num2
@staticmethod
def get_operator():
operator = input('Please enter an operator (+, -, *, /): ')
return operator
@classmethod
def calculate(cls):
cls.get_numbers()
cls.get_operator()
if operator == '+':
print(add(num1, num2))
elif operator == '-':
print(sub(num1, num2))
elif operator == '*':
print(mul(num1, num2))
elif operator == '/':
print(div(num1, num2))
Calc.calculate()
當我運行它,我得到這個:
Traceback (most recent call last):
File "calc_feltoltesre.py", line 44, in <module>
Calc.calculate()
File "calc_feltoltesre.py", line 32, in calculate
get_numbers()
NameError: name 'get_numbers' is not defined
我不知道爲什麼操作符和num1和num2在範圍中不可見。
你回溯,你貼不用排隊的代碼。請注意,您發佈的代碼使用'cls.get_numbers()',但回溯沒有'cls.'前綴。你確定你*保存了*你的工作嗎? –
另外,爲什麼要使用類* *當所有你有類方法和靜態方法?你也可以將這一切都轉化爲模塊中的功能。 –
僅供基礎練習。它可以幫助我解決裝飾者的基礎問題。 – dmbdnr