ある関数から次の関数に値を渡す必要があります。Pythonの関数内から関数に値を渡す
例えば(私のIRCボットはチャンネル内のコマンドに応答するようにプログラムさ):
def check_perms(nick,chan,cmd):
sql = "SELECT `"+ cmd +"` FROM permissions WHERE nick = '"+ nick +"' and chan = '"+ chan +"'" # This returns 0
#sql = "SELECT `restart` FROM permissions WHERE nick = 'Me' and chan = '#mychan'" # this works as intended
cursor.execute(sql)
result = cursor.fetchall()
for row in result:
if (row[0] == 1): # Nick logged in and has permission
return 1
else: # nick does not have permissions
return 0
def com_restart(nick,chan):
perm = check_perms(nick,chan,"restart")
if (perm == 0): # nick did not have permission
irc.send("NOTICE "+ nick +" :Permission denied.\n")
elif (perm == 1): # nick has permission
irc.send("PRIVMSG "+ chan +" :I've been asked to restart myself by "+ nick +".\n")
nick = "Me" # This is determined by a bunch of regex splits and such
chan = "#mychan" # This is determined by regex splits as well
com_restart(nick,chan)
私はこれを試してみてください、しかし、値がSQLクエリに渡されませんようですので、返します0
ご協力いただきありがとうございます。
EDIT - 私が現在取り組んでいるコードを追加しました。
あなたは今まであなたの機能を呼び出していますか?そうでなければ、何も起こりません。 – simchona
あなたのコードには構文に関しては複数の問題がありますが、それ以外はyをどこで呼びますか? fooとbarの初期化後にy(foo、bar)のような呼び出しが必要です。 – Yuushi
実際のコード、実際の対応するエラーメッセージ、実際に何が起こるべきかについての実際の記述、本当の何かを掲載してください。 –