python - SierpinskiTriangle() 只需要 1 个参数(给定 4 个)
问题描述
我正在尝试从导入的模块初始化 sT 。并得到错误:
sT = SierpinskiTriangle(self.dimensions, 50000, 0.5, vertices)
TypeError: SierpinskiTriangle() takes exactly 1 argument (4 given)
而且我不确定为什么或我做错了什么。
sT = SierpinskiTriangle(self.dimensions, 50000, 0.5, vertices)
我已经从另一个文件中导入了这个:
class Fractal(Canvas, Point):
def __init__(self, dimensions, num_points, ratio, vertices):
self.dimensions = dimensions
self.num_points = num_points
self.r = ratio
self.vertices = vertices
def frac_x(self, r):
return int((self.dimensions["max_x"] - \
self.dimensions["min_x"]) * r) + \
self.dimensions["min_x"]
def frac_y(self, r):
return int((self.dimensions["max_y"] - \
self.dimensions["min_y"]) * r) + \
self.dimensions["min_y"]
def SierpinskiTriangle(Fractal):
def __init__(self, dimensions, num_points, ratio, vertices):
Fractal.__init__(self, dimensions, num_points, ratio, vertices)
编辑,这是 Point 类:
class Point(object):
def __init__(self, x = 0.0, y = 0.0):
self.x = float(x)
self.y = float(y)
@property
def x(self):
return self._x
@x.setter
def x(self, value):
self._x = value
@property
def y(self):
return self._y
@y.setter
def y(self, value):
self._y = value
def dist(self, secondPoint):
#get the self x values from self.x and the values
#of the seecond point from secondPoint.x
#same with y
dist = math.sqrt(((self.x - secondPoint.x)**2)+ ((self.y - secondPoint.y)**2))
return dist
def midpt(self, secondPoint):
#same as the dist
midpointx = (self.x + secondPoint.x)/2
midpointy = (self.y + secondPoint.y)/2
midpoint = Point(midpointx,midpointy)
return midpoint
def __str__(self):
return "({},{})".format(self.x,self.y)
我希望这也有助于澄清事情。我没有 Canvas 类,因为它是 Tkinter 的一部分。
解决方案
您使用def
而不是class
for SierpinskiTriangle
which 意味着它只接受一个参数 ( Fractal
) 而不是将Fractal
其视为其超类。
将其更改为如下所示的类,它将需要 4 个参数。
class SierpinskiTriangle(Fractal):
def __init__(self, dimensions, num_points, ratio, vertices):
Fractal.__init__(self, dimensions, num_points, ratio, vertices)
推荐阅读
- servicestack - ServiceStack.OrmLite:写/读慢?
- node.js - 将其他文件夹中的 nodejs 模块包含到项目文件夹中
- c# - 在 C# 中使用多个字段对 ListBox 进行排序
- django - 如何使用 ORDER BY Chinese USERNAME 查询(转换为 gbk?) - Django,psql
- java - 即使在新项目中,几个小时后也无法扩展 RecyclerView.Adapter
- javascript - 使用 cordova 文件传输附加 pdf/word 文件
- python - 反向访问python中的列表
- android - 再次从列表中删除项目后,它即将到来
- r - 矩阵分解中产生的 NaN
- php - SQL 中的什么配置会在 clientlogin.php 之后更改重定向 URL?