Python函数内的if语句内外的同名变量为何不是同一实例?

如下,函数内定义了full_name变量,之后用if语句修改其值,为何显示if语句外定义的变量未被使用?(Local variable 'full_name' value is not used)如果想要if语句内使用函数中定义的full_name变量,应该如何修改?(即达到函数内if语句内外该变量的统一)

def get_formatted_name(first_name, last_name, middle_name=''):
    """Return a full name, neatly formatted."""
    full_name = ''
    if middle_name:
        full_name = f"{first_name} {middle_name} {last_name}"
    else:
        full_name = f"{first_name} {last_name}"
    return full_name.title()

img


如图,if语句之前的变量名是灰色,显示未被使用,怎样让他在if语句中被使用?

你意思理解错了,
因为你在if和else下面都没有使用full_time变量的值,只有对full_time变量的赋值语句,
那么你在if外面定义的full_name = ''就没有意义。
有没有这句代码都一样

翻译:本地变量“full_time”的值未被使用。
就是说你设置这个变量的值为''是没有意义的,因为你后面并没有直接调用这个变量的值,而是做赋值等操作。
其实你完全可以删除第三行,效果一样。
如果您在后面用了print(full_time)之类的语句,它会变成白色的。最好在赋值语句之前使用。


可以查看手册:python- 类和实例变量 中的内容

你怎么知道if外声明的full_item和if、else里面赋值的full_item不是一个实例的?