私はあなたがここで欲しいものを理解していると思います。 program
に電話をかけて、文字列の各文字にord
を実行することもできますが、program_chr
という全く新しい機能を使わなくても、文字列の各文字に(例えば)chr
を実行できるようにしたいとします。
喜んで、Pythonはfirst-class functionsをサポートしています。これは間違いなく可能です。文字列を渡すのと同じように、関数を引数としてprogram
に渡すことができます。
def program (my_str, my_fn):
i = 0
message = []
while i<len(my_str):
message.append(my_fn(my_str[i]))
i += 1
print(message)
program("my_string", ord)
これはord
が今までprogram
に登場せず、[109, 121, 95, 115, 116, 114, 105, 110, 103]
を出力!
あなたはあなた自身を定義するものも含めて、このために任意の関数を使用することができます。
def silly_fn (char):
return 12
program("my_string", silly_fn)
これは[12, 12, 12, 12, 12, 12, 12, 12, 12]
を出力します。
関連注記:str
は組み込み関数であり、それは正当な理由のないものを再定義することは決して良い習慣だから、私は、str
my_str
にパラメータを変更!
を出力? –
3つの非常に異なる回答から分かるかもしれませんが、あなたの質問は書かれているようにはっきりしていません。探しているものをより明快にするために編集することを検討してください(良い例は、サンプル入力と希望する出力を含む)。 – KernelPanic