私は過去にこの問題を抱えていましたが、解決策は見つかりませんでした。私はトンのGoogleリンクをチェックして、まだ知らない。 私がしたいことは、文字列を変数として使用することです。私はSQLAlchemyので働いてまっすぐ私のプロジェクトからの例を使用します。(関数内の変数「目的」を探してください)文字列を変数またはオブジェクトに変換する、Python
はここに例を示します
def win_ratio_p_obj(objective):
#want to find the win/loss ratio for each obj_first, ie. 60% of times when team gets fblood you also win vs. 40% of time you lose
obj_totals = session.query(Match.win, func.count(Match.win)).filter(Match.**objective** == 't').group_by(Match.win).order_by(Match.win).all()
win_chance = obj_totals[1][1]/(obj_totals[0][1]+obj_totals[1][1])
return win_chance
objective = 'first_dragon'
x = win_ratio_p_obj(objective)
objective = 'first_blood'
y = win_ratio_p_obj(objective)
objective = 'first_turret'
z = win_ratio_p_obj(objective)
objective = 'first_inhib'
戻り値:
Traceback (most recent call last):
Python Shell, prompt 15, line 1
builtins.AttributeError: type object 'Match' has no attribute 'objective'
私がしたいことは、コードの繰り返しを減らすことを目的として、それぞれの目的を変数名として使用することです。私は非常に簡単にいくつかの機能を貼り付けてコピーすることができることを知っているが、それはばかげているようだ。 現時点では、上記のコードは目的変数の値を文字列ではなく変数として認識しません。
すべての回答は非常に高く評価されます!
'GETATTR(マッチ、客観)'。 –