【问题标题】:missing positional argument on decorator装饰器缺少位置参数
【发布时间】:2021-02-22 22:24:32
【问题描述】:

当我开始编译时,我的项目有问题。我收到装饰器缺少位置参数的错误。

def decorator(self,func):
    def decorate_it(*args,**kwargs):
        for ast in range(0,10):
            if ast==0 or ast==9:
                print("*"*10)
            elif ast==len(list(range(0,10)))//2:
                print("*  "+func()+"  *")
            else:
                print("*"+" "*(len(list(range(0,10)))-2)+"*")
@decorator
def selectTransaction(self,instc):
#instc=user/instance_user 
    while True:
        inputTransc=input("""
        What the transaction do you want ?
        (A)Withdraw money
        (B)Transfer
        (C)Check cash
        (D)E-money payment
        (E)cancel\n
        """)
        if inputTransc.upper()=="A" or inputTransc.upper()=="B":
            self.__script.write("{} is choosing \"Withdraw money\"\n".format(instc)) if inputTransc.upper(instc)=="A" else self.__script.write("{} is choosing \"Transfer\"\n".format(instc))
            return self.Withdrawmoney() if inputTransc.upper()=="A" else self.Transfer()
        elif inputTransc.upper()=="C" or inputTransc.upper()=="D":
            self.__script.write("{} is choosing \"Check cash\"\n".format(instc)) if inputTransc.upper(instc)=="B" else self.__script.write("{} is choosing \"emoney payment\"\n".format(instc))
            return self.CheckUserMoney() if inputTransc.upper()=="C" else self.emoneyPayment()
        elif inputTransc.upper()=="E":
            self.__script.write("{} is choosing \"cancel\"\n".format(instc))
            self.condATM=[False,True]
        else:
            pass

我不断收到错误

TypeError: decorator() 缺少 1 个必需的位置参数:'func'

【问题讨论】:

    标签: python python-decorators


    【解决方案1】:

    def decorator(self,func) 应该只是 def decorator(func)decorator 应该从定义函数的类中移出。尤其是因为它甚至不使用 self

    【讨论】:

      猜你喜欢
      • 2019-11-26
      • 2023-04-03
      • 2019-09-07
      • 2019-01-24
      • 2022-01-22
      • 2022-06-28
      • 2020-09-20
      • 1970-01-01
      • 2020-09-28
      相关资源
      最近更新 更多