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

Jupyter Notebook(Java)中遇Unresolved dependencies错误及变量复用问题

解决方法间变量共享的问题

你遇到的Unresolved dependencies错误,本质是变量作用域问题——方法内部定义的变量默认是局部变量,其他方法无法直接访问。以下是几种符合项目要求的解决方案:

方案1:通过返回值传递变量(推荐轻量场景)

让获取输入的方法返回两个变量,后续方法通过参数接收这些值,逻辑清晰且符合函数式编程规范:

# 方法1:获取用户输入并返回
def get_inputs():
    total_money = float(input("请输入总金额:"))
    total_visitors = int(input("请输入总访客数:"))
    return total_money, total_visitors

# 方法2:使用输入值执行计算(示例逻辑)
def calculate_avg_spend(total_money, total_visitors):
    return total_money / total_visitors if total_visitors != 0 else 0

# 方法3:输出计算结果(示例逻辑)
def print_results(average_spend):
    print(f"平均每位访客消费:{average_spend:.2f}元")

# 主方法:串联所有流程
def run_program():
    money, visitors = get_inputs()
    avg_spend = calculate_avg_spend(money, visitors)
    print_results(avg_spend)

# 单独测试每个方法
get_inputs()
calculate_avg_spend(1500, 60)
print_results(25.0)

# 运行完整程序
run_program()

方案2:用类封装变量(推荐复杂场景)

把相关变量和方法封装到类中,通过实例属性共享数据,代码结构更清晰,扩展性更强:

class VisitorAnalytics:
    def __init__(self):
        self.total_money = 0.0
        self.total_visitors = 0

    # 获取用户输入的方法
    def collect_inputs(self):
        self.total_money = float(input("请输入总金额:"))
        self.total_visitors = int(input("请输入总访客数:"))

    # 计算平均消费的方法
    def compute_avg_spend(self):
        return self.total_money / self.total_visitors if self.total_visitors != 0 else 0

    # 打印结果的方法
    def display_results(self):
        avg = self.compute_avg_spend()
        print(f"平均每位访客消费:{avg:.2f}元")

    # 运行完整流程的方法
    def execute(self):
        self.collect_inputs()
        self.display_results()

# 单独测试每个方法
analytics = VisitorAnalytics()
analytics.collect_inputs()
print(analytics.compute_avg_spend())

# 运行完整程序
analytics.execute()

方案3:全局变量(不推荐,仅作了解)

将变量声明为全局变量,方法内部用global关键字引用,但这种方式会破坏代码的封装性,增加维护难度,仅适合极简单的场景:

total_money = 0.0
total_visitors = 0

def get_inputs():
    global total_money, total_visitors
    total_money = float(input("请输入总金额:"))
    total_visitors = int(input("请输入总访客数:"))

def calculate_avg_spend():
    global total_money, total_visitors
    return total_money / total_visitors if total_visitors != 0 else 0

def print_results():
    avg = calculate_avg_spend()
    print(f"平均每位访客消费:{avg:.2f}元")

def run_program():
    get_inputs()
    print_results()

# 测试与运行
get_inputs()
calculate_avg_spend()
run_program()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:55:24