takes 0 positional arguments but 1 was given (python错误记录)

takes 0 positional arguments but 1 was given (python错误记录)

C=Circle(2)
print(C.Area())
R=Rectangle(2,4)
print(R.Perimeter())

实现的是一个关于圆和长方形的类的练习

报错的代码:print(C.Area())

TypeError: Area() takes 0 positional arguments but 1 was given

.

错误原因:在定义其中Area()函数时 写成了def Area() 应该是def Area(self)

初学,定义函数时老忘了加self

.

搞笑的是改的时候 顺便发现了我的__init__ 函数里 赋值语句self.length=int(length)

有的加了self. ,有的没加!

看来还是太不熟了 要多写写代码练练~

顺便附上代码和搞笑的调试过程
class GeometricObject():
    color = 'red'

class Circle(GeometricObject):
    def __init__(self,radius):
        self.radius = radius
    def Area(self):#求面积
        self.area=round(int(self.radius)*3.14,2)
        return self.area

class Rectangle(GeometricObject):
    def __init__(self,length,breadth):
        self.length=int(length)
        self.breadth=int(breadth)
    def Perimeter(self):#求周长
        self.P=round(self.length*2+self.breadth*2,2)
        return self.P

C=Circle(2)
print(C.Area())
R=Rectangle(2,4)
print(R.Perimeter())

调试过程
原本以为简简单单的代码,改了好几次错,自己都想笑 哈哈哈 还是太菜
原本以为简简单单的代码,改了好几次错,自己都想笑 哈哈哈哈   还是太菜

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值