これを行うより良い方法はありますか?私はfunc
に引数を渡しているのと同じように、inside_func
の機能で使用されますか?内部の関数で使用される関数の引数にPythonが渡されていますか?
def inside_func(arg1,arg2):
print arg1, arg2
return
def func(arg1, arg2):
inside_func(arg1,arg2)
return
これを行うより良い方法はありますか?私はfunc
に引数を渡しているのと同じように、inside_func
の機能で使用されますか?内部の関数で使用される関数の引数にPythonが渡されていますか?
def inside_func(arg1,arg2):
print arg1, arg2
return
def func(arg1, arg2):
inside_func(arg1,arg2)
return
もちろんです。
あなたの外部機能はサービスを提供し、仕事をするためには入力が必要な場合があります。 これらの入力をどのように使用するかは、までです。彼らが仕事をするために別の関数を必要とし、それらが引き続き引数を渡すならば、実装の詳細です。
ここでは、標準的なカプセル化とモジュール化以外は何もしていません。これは、Pythonだけではなく、どの言語でも正しいプログラミング方法になります。
Python標準ライブラリには例がたくさんあります。迅速な使用のためのより簡単なインタフェースを提供するためによく使用されます。例えばtextwrap.wrap()
function:
def wrap(text, width=70, **kwargs):
"""Wrap a single paragraph of text, returning a list of wrapped lines.
Reformat the single paragraph in 'text' so it fits in lines of no
more than 'width' columns, and return a list of wrapped lines. By
default, tabs in 'text' are expanded with string.expandtabs(), and
all other whitespace characters (including newline) are converted to
space. See TextWrapper class for available keyword args to customize
wrapping behaviour.
"""
w = TextWrapper(width=width, **kwargs)
return w.wrap(text)
これは、他には何もしませんが、他の呼び出し可能オブジェクトへの上に引数を渡す、ちょうどので、あなたのコードは、迅速な一回限りのテキストの折り返しジョブのTextWrapper()
クラスを使用する方法を覚えておく必要はありません。 。
ああ、啓発に感謝します! :)私はちょうどそれが標準的なものではないと思った。 – essramos
標準ライブラリはそのような用途に満ちています。 –
実際にはそうではありません、それはもっとたくさんするでしょう。デモを試みるだけです。 – essramos
デコレータはIMOでも使用できます。 – pnv