python 循环调用随机函数的问题

#interface.py
import interface_data_random

def run(url,data_module):
    for index,item in enumerate(data_module):
        print(item)

def main():
    url='www.baidu.com'
    data_module=[
        interface_data_random.api_102,
        ]

    for i in range(5)://使用循环每次随机结果相同,单独调用随机结果就不同
        run(url,data_module)

if __name__ == '__main__':
    main()
#interface_data_random.py
import random

api_102=["102",
    {
        "params": {"id": random.randint(1,1000)}
    }]

clipboard.png

应该如何修改,才能使循环的随机结果不同

阅读 3.5k
2 个回答

你的

data_module=[
        interface_data_random.api_102,
        ]

只执行了一次,应该吧这个变量的定义也放在循环里。

两个文件写的都有问题。

首先我们试图单独调用interface_data_random.api_102,结果如下:

图片描述

原因是在执行import的时候,api_102的值已经确定了。如果想要每次调用的值重新计算,最好是写成函数:

import random


def api_102():
    return ["102", {
        "params": {"id": random.randint(1, 1000)}
    }]

至于主文件,我没看明白你想干什么。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题