Python调用os.getenv报'function' object not subscriptable错误求助
问题原因&修复方案
1. 直接报错的根源:os.getenv调用语法错误
os.getenv是Python内置的函数,不是字典,你代码里用方括号[]取值属于语法错误,函数调用必须使用圆括号()传参。
你需要把notification_manager.py里的4行常量定义全部修改:
# 错误写法 SID = os.getenv["TWILIO_SID"] AUTH_TOKEN = os.getenv["TWILIO_AUTH_TOKEN"] VIRTUAL_NUMBER = os.getenv["TWILIO_VIRTUAL_NUMBER"] VERIFIED_NUMBER = os.getenv["TWILIO_VERIFIED_NUMBER"] # 正确写法 SID = os.getenv("TWILIO_SID") AUTH_TOKEN = os.getenv("TWILIO_AUTH_TOKEN") VIRTUAL_NUMBER = os.getenv("TWILIO_VIRTUAL_NUMBER") VERIFIED_NUMBER = os.getenv("TWILIO_VERIFIED_NUMBER")
修改完这部分就能解决你当前碰到的TypeError: 'function' object is not subscriptable报错。
2. 隐藏的后续报错提前规避
你代码里还存在大小写不匹配的问题,提前修改避免后续报错:NotificationManager类中定义的发送短信方法名为send_SMS(S、M大写),但主程序中调用的是nm.send_sms(全小写),Python是大小写敏感的语言,两者必须保持一致:要么修改类方法名为def send_sms(self, message):,要么修改主程序调用语句为nm.send_SMS(...)。
内容的提问来源于stack exchange,提问作者Spookr
相关产品推荐
相关产品推荐

