首页 > 解决方案 > 我是 python 新手,我试图运行这个花哨的装饰器代码

问题描述

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.xpycharmdecorator

解决方案


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

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

参考:https ://dbader.org/blog/python-dunder-methods


推荐阅读