You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Requests使用输入的登录字符串时触发NameError未定义错误

问题原因
  • 触发NameError的核心原因是变量作用域问题:你在profiles()函数内部定义的LOGIN、PASSWORD属于函数局部变量,仅在profiles函数执行过程中生效,函数外部(包括调用它的Checkout函数作用域内)无法直接访问这两个变量。
  • 额外注意你的业务代码中未导入requests库,后续运行也会触发导入类报错。
修复方案

1. 修改profiles.py代码,让函数返回输入的账号密码

def profiles():
    LOGIN = input("Enter your login email: ")
    print(LOGIN)
    PASSWORD = input("Enter your login password: ")
    print(PASSWORD)
    # 新增返回语句,把两个值返回给调用方
    return LOGIN, PASSWORD

2. 修改业务代码,接收profiles()返回的变量,同时补全requests导入

import requests
from profiles import profiles

def Checkout():
    # 接收profiles函数返回的两个值,赋值给当前作用域的LOGIN、PASSWORD变量
    LOGIN, PASSWORD = profiles()
    login = {
        'inUserName': LOGIN, 
        'inUserPass': PASSWORD
    }
    with requests.Session() as s:
        p = s.post('https://EXAMPLEWEBSITE.com/account/login', data=login)
补充说明
  • 不推荐用全局变量传值,函数返回是更规范、可维护性更高的写法
  • 如果需要密码输入时隐藏输入内容,可以改用getpass库的getpass方法替代input

内容的提问来源于stack exchange,提问作者stevieg613

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:45:04