У меня есть следующий код:
import numpy as np
class Basis(object):
def __init__(self, dimension):
self.dimension = dimension
def coord(self, c):
if self.dimension <= 2:
return c
else:
return c + [0]*(self.dimension-2)
@property
def zerocoord(self):
return self.coord([0,0])
@property
def Dcoord(self):
return self.coord([1,0])
@property
def Tcoord(self):
return self.coord([0,1])
@property
def Xcoord(self):
return self.coord([1./np.sqrt(2), 1./np.sqrt(2)])
@property
def Ycoord(self):
return self.coord([-1./np.sqrt(2), 1./np.sqrt(2)])
, где все свойства в основном каждое из свойств вызывает один и тот же метод coord
.Это потому, что фактический массив, который я передаю coord
, [0,0], [1,0], [0,1]
и т. Д., Является фиксированным, но может быть расширен в зависимости от атрибута экземпляра dimension
.
Я немного новичок в Python, но интуитивно(и, возможно, наивно) Я думаю, что это можно написать как обертку ... что-то вроде:
@property
def coord(self)
и
@coord
def Dcoord(self)
, что сделало бы код более элегантным.
Может кто-нибудь помочь мне?