繁体   English   中英

我不知道如何包括所需的位置参数

[英]I don't know how to include the required positional arguments

我不确定如何首先纠正缺少必需的位置参数的问题,但是在此之后,我尝试为n,s,x和y设置可变的默认值。 如果这个问题看起来很愚蠢,我深表歉意,但是我是新来的,感谢您提供的所有帮助。

import math

class RegularPolygon:

    def __init__(self, n, s, x, y):
        self.n = 3
        self.side = 1
        self.x = 0
        self.y = 0

    def getN(self, n):
        self.n = n
        return self.n

    def getSide(self, s):
        self.side = s
        return self.side

    def getX(self, x):
        self.x = x
        return self.x

    def getY(self, y):
        self.y = y
        return self.y

    def getPerimeter(self, n , s):
        self.perimeter = n * s
        return self.perimeter

    def getArea(self, n, s):
        self.area = (n * math.pow(s, 2)) / ( 4 * math.tan(math.pi / n))
        return self.area

错误:

Traceback (most recent call last):
File "C:\Pythonstuff\Ch.7\chapter07_unittests.py", line 7, in setUp
self.poly1 = RegularPolygon()
TypeError: __init__() missing 4 required positional arguments: 'n', 's', 'x', and 'y'

创建RegularPolygon对象时,您需要传递值:

c = RegularPolygon(100, 100, 100, 100)

您现在可能正在写:

c = RegularPolygon()

在该类中,有四个位置参数,您现在不再通过。 由于这些参数均没有默认值,因此都是必需的,因此在这种情况下,您需要精确指定四个值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM