python 全局变量赋值不生效_Python 变量赋值 没有成功,偶发性现象 诡异
原始代码:def get_http_ip():res = requests.get('http://www.xxx.com')res = json.loads(res.text)if res['code'] == 200:print(res['data'])# 这里打印结果都还是正常的time.sleep(5)# 我猜有可能有人说太快了,那么我这里给一个定时器。# 我猜,肯定有人说...
原始代码:
def get_http_ip():
res = requests.get('http://www.xxx.com')
res = json.loads(res.text)
if res['code'] == 200:
print(res['data']) # 这里打印结果都还是正常的
time.sleep(5) # 我猜有可能有人说太快了,那么我这里给一个定时器。
# 我猜,肯定有人说你在这写一个变量先赋值一下,然后再把变量返回出去
# 我当然试过了,结果依然是一样的,一样会出现 None
return res['data']
else:
time.sleep(1)
get_http_ip()
def start():
info = get_http_ip()
print(info) # 这个位置有些时候会打印出 None,这是为啥呢?
if __name__ == '__main__':
start()
修正的代码:
ip_list = ''
def get_http_ip():
global ip_list
res = requests.get('http://www.xxx.com')
res = json.loads(res.text)
if res['code'] == 200:
ip_list = res['data'] # 我把结果赋值给全局变量
return res['data']
else:
time.sleep(1)
get_http_ip()
def start():
global ip_list
info = get_http_ip()
if info == None: # 我这里写一个判断如果返回 None 我就用全局变量赋值
info = ip_list
print(info)
if __name__ == '__main__':
start()
那么问题来了,为啥我第一个办法有些时候会返回 None 呢?
我瞎猜,是不是内存指针跟不上?
就是前辈们指教一下,什么原因导致的?
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)