我想让 def 函数的输出打印出来
I wanna make my output from a def function print out
这是我的代码,每当我尝试 运行 代码时,它都会显示“solution.printing() 缺少 1 个必需的位置参数:'self'”。我只想让我的 def printing(self): 工作。我对堆栈溢出完全陌生,所以请随时询问我的问题是否太模糊而无法回答
class salary():
def __init__(self, name, address, rate, hours):
self.name = name
self.address = address
self.rate = rate
self.hours = hours
class solution(salary):
def max(self):
maxhour = 40
if self.hours > maxhour:
self.exceed = self.hours - maxhour
return self.exceed, self.hours
else:
return self.hours
def workhours(self):
salad = self.hours * self.rate
return salad
def overtime(self):
self.max()
interestrate = self.rate * 0.1
totalinterestrate = interestrate * self.exceed
salad =totalinterestrate + (self.rate * 40)
return salad
def printing(self):
self.workhours()
self.overtime()
print(solution.workhours(), solution.overtime())
name = input("Input your name: ")
address = input("Where do you live?: ")
rate = int(input("How much is your rate?: "))
hours = int(input("How many hours did you work?: "))
gle = salary(name, address, rate, hours)
solution.printing
您在任何时候都没有指定 solution.exceed 是什么,所以我将其设置为使代码正常工作,但这对我有用:
class salary():
def __init__(self, name, address, rate, hours):
self.name = name
self.address = address
self.rate = rate
self.hours = hours
class solution(salary):
def max(self):
maxhour = 40
if self.hours > maxhour:
self.exceed = self.hours - maxhour
return self.exceed, self.hours
else:
return self.hours
def workhours(self):
salad = self.hours * self.rate
return salad
def overtime(self):
self.exceed = 5 #added this since it wasn't defined
self.max()
interestrate = self.rate * 0.1
totalinterestrate = interestrate * self.exceed
salad =totalinterestrate + (self.rate * 40)
return salad
def printing(self):
print(self.workhours(), self.overtime()) #just need this, you did it before with self.max()
#To actually run it and all
sol = solution('name','address',10,5)
sol.printing()
class salary():
def __init__(self, name, address, rate, hours):
self.name = name
self.address = address
self.rate = rate
self.hours = hours
class solution(salary):
def max(self):
maxhour = 40
if self.hours > maxhour:
self.exceed = self.hours - maxhour
return self.exceed, self.hours
else:
self.exceed = 0
return self.hours
def workhours(self):
salad = self.hours * self.rate
return salad
def overtime(self):
self.max()
interestrate = self.rate * 0.1
totalinterestrate = interestrate * self.exceed
salad =totalinterestrate + (self.rate * 40)
return salad
def printing(self):
self.workhours()
self.overtime()
print(self.workhours(), self.overtime())
name = input("Input your name: ")
address = input("Where do you live?: ")
rate = int(input("How much is your rate?: "))
hours = int(input("How many hours did you work?: "))
gle = solution(name, address, rate, hours)
gle.printing()
在 max() 中添加 self.exceed = 0
当 maxhour <= 40
更改了打印的最后一行()
最后,更改最后两行:您要创建解决方案实例,而不是薪水实例。
这是我的代码,每当我尝试 运行 代码时,它都会显示“solution.printing() 缺少 1 个必需的位置参数:'self'”。我只想让我的 def printing(self): 工作。我对堆栈溢出完全陌生,所以请随时询问我的问题是否太模糊而无法回答
class salary():
def __init__(self, name, address, rate, hours):
self.name = name
self.address = address
self.rate = rate
self.hours = hours
class solution(salary):
def max(self):
maxhour = 40
if self.hours > maxhour:
self.exceed = self.hours - maxhour
return self.exceed, self.hours
else:
return self.hours
def workhours(self):
salad = self.hours * self.rate
return salad
def overtime(self):
self.max()
interestrate = self.rate * 0.1
totalinterestrate = interestrate * self.exceed
salad =totalinterestrate + (self.rate * 40)
return salad
def printing(self):
self.workhours()
self.overtime()
print(solution.workhours(), solution.overtime())
name = input("Input your name: ")
address = input("Where do you live?: ")
rate = int(input("How much is your rate?: "))
hours = int(input("How many hours did you work?: "))
gle = salary(name, address, rate, hours)
solution.printing
您在任何时候都没有指定 solution.exceed 是什么,所以我将其设置为使代码正常工作,但这对我有用:
class salary():
def __init__(self, name, address, rate, hours):
self.name = name
self.address = address
self.rate = rate
self.hours = hours
class solution(salary):
def max(self):
maxhour = 40
if self.hours > maxhour:
self.exceed = self.hours - maxhour
return self.exceed, self.hours
else:
return self.hours
def workhours(self):
salad = self.hours * self.rate
return salad
def overtime(self):
self.exceed = 5 #added this since it wasn't defined
self.max()
interestrate = self.rate * 0.1
totalinterestrate = interestrate * self.exceed
salad =totalinterestrate + (self.rate * 40)
return salad
def printing(self):
print(self.workhours(), self.overtime()) #just need this, you did it before with self.max()
#To actually run it and all
sol = solution('name','address',10,5)
sol.printing()
class salary():
def __init__(self, name, address, rate, hours):
self.name = name
self.address = address
self.rate = rate
self.hours = hours
class solution(salary):
def max(self):
maxhour = 40
if self.hours > maxhour:
self.exceed = self.hours - maxhour
return self.exceed, self.hours
else:
self.exceed = 0
return self.hours
def workhours(self):
salad = self.hours * self.rate
return salad
def overtime(self):
self.max()
interestrate = self.rate * 0.1
totalinterestrate = interestrate * self.exceed
salad =totalinterestrate + (self.rate * 40)
return salad
def printing(self):
self.workhours()
self.overtime()
print(self.workhours(), self.overtime())
name = input("Input your name: ")
address = input("Where do you live?: ")
rate = int(input("How much is your rate?: "))
hours = int(input("How many hours did you work?: "))
gle = solution(name, address, rate, hours)
gle.printing()
在 max() 中添加 self.exceed = 0
当 maxhour <= 40
更改了打印的最后一行()
最后,更改最后两行:您要创建解决方案实例,而不是薪水实例。