我在嵌套表中有值。我需要做一些計算並獲得結果。課程安排在script1.py
和script2.py
。TypeError:__init __()在子類中缺少1個必需的位置參數
存在超類Values
,它讀取列表中的每一行並將它們轉換爲numpy數組。
還有一個子類Dimensions
,它繼承Values
的數組並進行計算。
該代碼與表一起運行並獲取結果,但不起作用。我得到的錯誤信息:
init() missing 1 required positional argument: 'tbl'
script1.py
:
import numpy as np
class Values:
def __init__(self, tbl):
self.tbl = tbl
def get_val_a(self):
val_a = np.array(self.tbl[0])
return val_a
def get_val_b(self):
val_b = np.array(self.tbl[1])
return val_b
def get_val_c(self):
val_c = np.array(self.tbl[2])
return val_c
script2.py
:
from script1 import Values
val = Values()
class Dimensions(Values):
def __init__(self, tbl):
super().__init__(tbl)
def get_dim_a(self):
dim_a = 2 * val.get_val_a()
return dim_a
def get_dim_b(self):
dim_b = 2 * val.get_val_b()
return dim_b
def get_dim_c(self):
dim_c = 2 * val.get_val_c()
return dim_c
script3.py
:
from script2 import Dimensions
table = [[1, 2, 3],
[1, 4, 9],
[1, 8, 27]]
dim = Dimensions()
dim_1 = dim.get_dim_a()
dim_2 = dim.get_dim_b()
dim_3 = dim.get_dim_c()
print('Dimensions: ', dim_1, dim_2, dim_3)
好吧,你是不是在傳遞一個參數,當你調用'尺寸()''但尺寸。__init __()'顯然需要'tbl'參數。你是不是要調用'Dimensions(table)'而不是? –
爲什麼你要在'script2.py'的模塊級創建'val'呢?它不僅不需要(每個調用它的方法都已經由'Dimensions'繼承),它確保每個創建的Dimensions對象都會污染每個其他'Dimensions'對象的數據。 –
來想一想...這兩個類如何幫助你做任何事情,但減慢你已經創建的numpy數組(反覆和...)?你是否試圖通過這些類之外的代碼來反映對'table'所做的更改? –