我想让 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

更改了打印的最后一行()

最后,更改最后两行:您要创建解决方案实例,而不是薪水实例。