奇妙な問題が 1 つあります。それ自体が他の関数の引数として渡される関数の引数を渡したり変更したりしたいです。詳細については、以下のコードを参照してください
def generic_method(selector_type='CSS', selector=None, parent_element=None, postfunc=None):
# Do your stuff and get value of attr_value
print "Doing Stuff"
attr_value = '$123.70'
print "Post-Processing Step"
if postfunc:
attr_value = postfunc(attrval=attr_value)
return attr_value
# The 2 methods below are in separate file
from functools import partial
def method_in_bot():
p, q, r = 11, 12, 13
postfunc = partial(post_processing, 12, p, q, r, post=23)
value = generic_method('XPATH', '.class-name', 'parent_element', postfunc)
return value
def post_processing(y=None, *args, **kwargs):
attr_value = kwargs.get('attrval', 'None')
if attr_value:
return attr_value.split('$')
return []
そのため、post_processing
メソッドとそのすべてのパラメーターをgeneric_method
使用して my にfunctools's partial
渡し、新しい変数もattrval
post_processing メソッドに渡しました。しかし、もっと望ましいのは、変数をにattr_value
直接渡すか代入することです。y
post_processing
実行時に関数のパラメーターを変更する方法を探していました。私はネットを検索していinspect
て、関数に渡される引数について説明するPythonのライブラリであることがわかりました。このような場合に使用できますか。