Python中如何在不同文件间调用变量

文件名:login_jinfive.py

-- coding:UTF-8 --

import requests import logging import unittest logging.basicConfig(level=logging.INFO)

class TestLogin(unittest.TestCase):

def setUp(self):
    self.data = {
        "username": "10086",
        "password": "10086"
    }
    self.error ={
        "username": "10089",
        "password": "10089"
    }
    self.pass_null = {
        "username": "10086",
        "password": ""
    }
    self.username_null = {
        "username": "",
        "password": "10086"
    }
    self.host = "http://xx.xx.xx.xx"
    self.path = "/auth/token/profile/get/"
    self.url = self.host + self.path
    return self.host

def test_a_req_post(self): # noinspection PyBroadException response = requests.post(self.url, data=self.data) if response.status_code == 200: logging.info(“登陆成功”) self.response_token = response.json()[“token”] # logging.info(“token: %s” % response_token) else: logging.info(“登陆失败”)

def test_b_req_error(self): response = requests.post(self.url, data=self.error) logging.info(response.text)

def test_c_password_null(self): response = requests.post(self.url, data=self.pass_null) logging.info(response.text)

def test_d_username_null(self): response = requests.post(self.url, data=self.username_null) logging.info(response.text)

if name == "main": unittest.main()

各位大神,我在 abc.py 文件该如何引用 login_jinfive.py 引用 response_token 这个变量呢,谢谢(我用的 python2 )

该文件为 abc.py from Login_JinFive import TestLogin

a = TestLogin.response_token

这样无法调用的报错: ValueError: no such test method in <class 'Login_JinFive.TestLogin'>: runTest


Python中如何在不同文件间调用变量

5 回复

emm,可以先了解一下作用域相关知识,你就清楚了


在Python中,不同文件间调用变量的核心方法是使用模块导入。主要有几种方式:

  1. 直接导入变量:如果config.py中定义了API_KEY = "123",在其他文件中用from config import API_KEY即可直接使用。

  2. 导入整个模块:用import config,然后通过config.API_KEY访问。这种方式能避免命名冲突。

  3. 使用__init__.py组织包:对于大型项目,把相关文件放在一个目录下,加上__init__.py文件使其成为包,然后通过from mypackage.config import API_KEY导入。

  4. 动态导入:可以用importlib.import_module('config'),适合需要根据条件导入不同模块的场景。

  5. 单例模式或全局状态管理:对于需要跨多个文件共享的全局状态,可以创建一个专门的模块(如global_state.py)来集中管理这些变量。

关键是要注意避免循环导入,并合理规划项目结构。简单项目用前两种方法就够了。

总结:用模块导入机制,保持结构清晰。

谢谢

legb ?

你这个 res_token 是在调用 test_a_req_post 函数的时候,才绑定到实例上的。没调用之前自然是找不到的。

回到顶部