我是一个新的python,我试图运行这个花哨的装饰者代码。

问题描述 投票:0回答:1
class Square:
    def _init_(self,side):
        self._side = side
    @property
    def side(self):
        return self._side
    @side.setter
    def side(self,value):
        if value >= 0:
            self._side = value
        else:
            print("error")
    @property
    def area(self):
        return self._side **2
    @classmethod
    def unit_square(cls):
        return cls(1)
s = Square(5)
print(s.side)
print(s.area)

但我得到了错误(s = Square(5) TypeError: Square()不接受任何参数),我无法弄清楚。

python-3.x pycharm decorator
1个回答
0
投票

init 方法应该有双下划线(__). 将方法改为 __init__

def __init__(self, side):
    self._side = side

参考文献。https:/dbader.orgblogpython-dunder-methods

© www.soinside.com 2019 - 2024. All rights reserved.