だから私は、私は名前空間を防止するために、クラスに保存したい2.7
時系列として、約150かそこらの機能があり、この既存のコードベースに取り組んでいます汚染。
これは、これらの機能のそれぞれがどのようなパターンのないユニークな名前です
import some.module
def func1(start_date, end_date):
some code here
return time_series
def func2(start_date, end_date):
some code here
return time_series
.
.
.
def func150(start_date, end_date):
some code here
return time_series
を存在するものです。私は疲れたクラスで
def function_builder(some_data):
def f(start_date, end_date):
some_code_here()
return series
return f
class TimeSeries():
func1 = function_builder(some_data)
func2 = function_builder(some_other_data)
.
.
.
func150 = function_builder(some_other_other_data)
それらを置くために私の希望は、これは私が単に時系列をインポートし、
from some.location import TimeSeries as ts
#Actual code use
data = ts.func1(start_date, end_date)
のようにそれを使用することができることにつながるということであった。しかし、このアプローチは、次のエラーがスローされます
はTypeError:バインドされていないメソッドf()が最初の引数として時系列インスタンスで呼び出さなければなりません(代わりに日付を得た)
どのように機能の巨大なコレクションを進めるべきかアドバイスしてください。私はプログラミングが初めてで、これを正しく実行したいと考えています。
あなたが最初のクラスのインスタンスを作成せずにクラスメソッドを呼び出すようにしようとしているので、あなたが結合していないメソッドのエラーを取得しています。これらの機能が既に使用されている場合は、それらをすべてクラスに詰め込むことはおそらく解決策ではありません。 – rug3y
これは本当にクラスの最高の使用ではありません。なぜ、それらを辞書や何かに入れないのはなぜですか? –
Dictは悪い考えではありません。誰かがクラスをネームスペースとして使用できると私に言った前に、それを検討していました –