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

Python报错NameError:_text未定义问题求助(已自行修复)

问题分析与解决:NameError: name '_text' is not defined

报错原因

_text()函数被定义在heart()函数内部,属于局部函数。Python中,局部函数的作用域仅限于定义它的外部函数(即heart())内部,全局作用域无法直接访问这个函数,因此执行_text()时会触发NameError。

修复方案

方案1:将_text()改为全局函数

把_text()移到heart()函数外部,使其成为全局作用域下的函数,这样就能在外部直接调用:

import turtle

pen=turtle.Turtle()

def curve():
    for i in range(200):
        pen.right(1)
        pen.forward(1)

def _text():
    pen.up()
    pen.setpos(-68, 95)
    pen.down()
    pen.color('yellow')
    pen.write("I Love You")

def heart():
    pen.fillcolor('red')
    pen.begin_fill()
    pen.left(140)
    pen.forward(113)
    curve()
    pen.left(120)
    curve()
    pen.forward(112)
    pen.end_fill()

heart()
_text()
pen.ht()

方案2:在heart()内部调用_text()

如果不需要在外部调用_text(),可以直接在heart()函数内部执行该局部函数:

import turtle

pen=turtle.Turtle()

def curve():
    for i in range(200):
        pen.right(1)
        pen.forward(1)

def heart():
    pen.fillcolor('red')
    pen.begin_fill()
    pen.left(140)
    pen.forward(113)
    curve()
    pen.left(120)
    curve()
    pen.forward(112)
    pen.end_fill()

    def _text():
        pen.up()
        pen.setpos(-68, 95)
        pen.down()
        pen.color('yellow')
        pen.write("I Love You")
    
    _text()  # 在heart内部调用局部函数

heart()
pen.ht()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:03:14