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

执行try.py时提示“Settings object has no attribute screen_height”问题咨询

解决"Settings object has no attribute screen_height"错误

嘿,这个错误我之前调试代码时也碰到过,本质就是你的Settings类实例里找不到screen_height这个属性,具体来说大概率是下面这几种情况之一:

  • Settings类未定义screen_height实例属性
    打开你的settings.py,检查Settings类的__init__方法,是不是漏写了screen_height的定义?比如可能只写了屏幕宽度:

    class Settings:
        def __init__(self):
            self.screen_width = 1200
            # 这里缺少self.screen_height = 800这类代码
    

    这种情况下,try.py里调用settings.screen_height自然会触发属性不存在的错误。

  • 属性名拼写/大小写不匹配
    Python是大小写敏感的语言,如果settings.py里定义的是screen_hight(把height拼错成hight),或者Screen_Height(大小写不对),而try.py里调用的是screen_height,两者不匹配就会报错。一定要仔细核对拼写和大小写!

  • 属性定义在非初始化方法中,未提前调用
    如果你把screen_height放在了Settings类的某个普通方法里,而不是__init__方法中,那只有调用这个方法后,实例才会拥有该属性。比如:

    class Settings:
        def __init__(self):
            self.screen_width = 1200
        
        def configure_screen(self):
            self.screen_height = 800
    

    如果try.py里没有先调用settings.configure_screen()就直接访问settings.screen_height,肯定会找不到这个属性。

  • 实例化方式错误
    还有一种少见但容易犯的错误:在try.py里没有正确实例化Settings类,而是直接引用了类本身。比如:

    # 错误写法
    from settings import Settings
    settings = Settings  # 只是引用类,没有创建实例
    print(settings.screen_height)
    

    正确的写法应该是settings = Settings(),创建类的实例后才能访问实例属性。

快速排查步骤

  1. 先打开settings.py,检查Settings类的__init__方法,确认是否存在self.screen_height的定义,拼写和大小写是否正确;
  2. 如果属性在其他方法里,确保try.py中调用该方法后再访问属性;
  3. 检查try.py里的实例化代码,确认是创建了类的实例而不是直接引用类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:59:59