最近、私はリターン指定されたリストの種類と程度を指定似たシンプルなジェネレーターを書くためにはPythonを使用していました。
たとえば、私たちは、0〜3の整数をしたい、と私はちょうど指定する必要があります。
最小:0、
最大:3、
ステップ:1
[0,1,2,3]リストに戻ります
アイデアはデコレータ内部交換メソッドのパラメータ値と呼ばれたときに渡し、デフデコレータでプレーするPythonのデコレータを使用することです
コードは以下の通りであります:
1つの #のコード= UTF-8 2 3 デフ整数(MIN = 0、最大= 100、ステップ= 1 ): 4 DEF デコ(FUNC): 5 DEF ラッパー(ヴァル): 6 ヴァル= [] 7 のための I における範囲( MIN、MAX、ステップ): 8 val.append(I)#将入参修改掉 9 戻りFUNC(ヴァル) 10 リターンラッパー 11 リターンデコ 12 13 14 @integer(1、40 )、 15 デフID(ヴァル): 16 返すのvalを 17 18 = ID(なし) 19 プリント(A)
私が欲しいもののように印刷されたリストの値:
[1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22、
23、24、25 、26、27、28、29、30、31、32、33、34、35、36、37、38、39]
Javaのアノテーションがはるかに便利書くことよりも、Pythonの大法が良いです!