1

これは初歩的な質問であり、関数が一度しか実行されないことはかなり確信していますが、明確にしたいと思います。Python と urllib を使用して Web サイトにログインしています。ログインすると、アカウントに関連付けられたユーザー ID が表示され、サイトをナビゲートできるようになります。ただし、変数を呼び出すたびにログインしたくないので、変数を呼び出すと再度ログインするのか、ログイン機能を明示的に実行した場合にのみログイン機能が実行されるのか疑問に思っていましたか?

def login(username,pw):
     #some calls to HTTP server using urllib
     return user_id

user_id = login('abc@hotmail.com','mypassword') 

def search():
    #calls to HTTP to perform a search on a page on the website
    #I need to reference user_id and I want to know if user_id will simply be 
    # the integer user_id or if it will call the login function each time I reference it
4

2 に答える 2

2

参照user_idすると、割り当てた元の値が返されます。関数はlogin()呼び出されません。

于 2013-03-11T16:45:02.830 に答える
2

行ったように変数を割り当てると、右側の部分がすぐに 1 回だけ評価されます。変数を使用する場合、それ以上の再評価はありません。

于 2013-03-11T16:45:29.303 に答える