Python,如果变量语句错误表示未定义

Python, If statement error with variables says not defined

我在尝试使用 python 中的 if 语句时遇到问题。 我看不到变量是真还是假,因为它说变量未定义但我在方法中定义了它。

我也在使用 kivy 和 kivyMD,以防万一人们想知道为什么有些代码在那里。

from kivymd.app import MDApp
from kivymd.uix.screen import Screen
from kivymd.uix.button import MDRectangleFlatButton, MDRoundFlatButton
from kivymd.uix.textfield import MDTextField
from kivy.lang import Builder
from kivymd.uix.menu import MDDropdownMenu

class DemoApp(MDApp):
    def show_data(self):
        inputFahrenheit = self.root.ids.fahrenheit.text
        if fahrenheit1 is True:
            Celsius_Half = float(inputFahrenheit) - 32 
            Celsius_Before_Round = Celsius_Half * 5/9

            Celsius = round(Celsius_Before_Round , 1)

    def convert1F(self):
        fahrenheit1 = True
        celsius1 = False

    def convert1C(self):
        fahrenheit1 = False
        celsius1 = True

    def convert2F(self):
        fahrenheit2 = True
        celsius2 = False

    def convert2C(self):
        fahrenheit2 = False
        celsius2 = True

    def on_start(self):
        self.theme_cls.primary_palette = "Green"
        self.theme_cls.primary_hue = "A700"
        self.theme_cls.theme_style = "Light"

    def build(self):
        kv = Builder.load_file("test.kv") 
        screen = Screen()
        return kv
            
    
DemoApp().run()

这个if语句是有问题的 复制有问题: "fahrenheit1" is not defined

因为没有定义名为 fahrenheit1 的变量。 先解决这个问题

为了定义 fahrenheit1,您需要将其声明为 class 属性。 在 class __init__ 中定义 in 或作为 class 顶部的静态属性,在任何方法之外)作为 fahrenheit1: bool = <your_defualt_value>