有人对 python 类了解很多吗?当我输入一些数据时,它的对象给我错误

发布于 2025-01-17 00:04:39 字数 243 浏览 0 评论 0原文

构建了一个当我运行代码时,我收到此错误

if unit == 'F': self.number = (number - 32) * 5/9 UnboundLocalError:赋值前引用的局部变量“number”

built a class i get this error when i run the code

if unit == 'F': self.number = (number - 32) * 5/9
UnboundLocalError: local variable 'number' referenced before assignment

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

海夕 2025-01-24 00:04:39

number 变量需要在 to() 函数的开头首先声明。
在 to() 函数的第一行添加一个简单的“number;”即可解决问题。

number variable need to be declare first at the beginning of to() function.
A simple : " number; " in first line of your to() function will solve the problem.

慈悲佛祖 2025-01-24 00:04:39
class Temp:
    """A class to help work with lengths in various units"""
    number = 0
    def __init__(self, number, unit='C'):
        # Convert and store Temp as self.temp
        if unit == 'C': self.temp = number
        elif unit == 'F': self.temp = (number - 32) * 5/9
        elif unit == 'K': self.temp = number + 273.15
        # Unit not recognised
        else: raise Exception("Unit not recognised")
    
    def to(self, unit, dp=None):
        
        # Convert self.temp to unit
        if unit == 'C': number = (5/9 * self.temp ) + 32
        elif unit == 'C': number = self.temp - 273.15 
        
        else: raise Exception("Unit not recognised")
        if dp: number = round(number, dp)
        return f"{number}{unit}"
    
    def __str__(self):
        return f"Temp: {self.temp}C"
    
    def __add__(self, other):
        return Length(self.metres + other.metres)
class Temp:
    """A class to help work with lengths in various units"""
    number = 0
    def __init__(self, number, unit='C'):
        # Convert and store Temp as self.temp
        if unit == 'C': self.temp = number
        elif unit == 'F': self.temp = (number - 32) * 5/9
        elif unit == 'K': self.temp = number + 273.15
        # Unit not recognised
        else: raise Exception("Unit not recognised")
    
    def to(self, unit, dp=None):
        
        # Convert self.temp to unit
        if unit == 'C': number = (5/9 * self.temp ) + 32
        elif unit == 'C': number = self.temp - 273.15 
        
        else: raise Exception("Unit not recognised")
        if dp: number = round(number, dp)
        return f"{number}{unit}"
    
    def __str__(self):
        return f"Temp: {self.temp}C"
    
    def __add__(self, other):
        return Length(self.metres + other.metres)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文