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

Python类调用init_vibe_check报未定义错误该如何解决?

问题原因分析
  • init_vibe_check是PeaceKeeper类的实例方法,类内部调用实例方法必须通过self.方法名()的形式调用,不能直接写方法名,且调用时不需要手动传入self参数,你的调用写法init_vibe_check(self)不符合语法要求,直接触发未定义报错。
  • Dev类的name、has_vibe属性是存储在PeaceKeeper实例的self.dev属性中的,你直接通过self.has_vibe、self.name访问会找不到属性,必须改为self.dev.has_vibe、self.dev.name。
  • create_dress_code_for是实例方法,不能直接通过类名PeaceKeeper调用,必须先传入Dev实例创建PeaceKeeper的实例对象,再通过实例调用该方法。
修正后可运行代码
#
#  15:03 : October 8, 2021
#  By: Your friendly neighborhood SWE ==> ADMINIXTRATOR
#  AIM: Keep world peace by creating a dress code
#

class Dev:
    level = 'Pre-Senior'

    def __init__(self, name, has_vibe):
        self.name = name
        self.has_vibe = has_vibe

class PeaceKeeper:

    def __init__(self, dev):
        super().__init__()
        self.dev = dev

    def init_vibe_check(self):
        if self.dev.has_vibe == True:
            return True
        else: 
            return False

    def create_dress_code_for(self):
        he_will_receive_props = self.init_vibe_check()

        if he_will_receive_props == True:
            print("Hi " + self.dev.name + ", you are entitled to a dress code")
        else: 
            print(self.dev.name + ", you cannot get a dress code")


# Create two sample Devs
david_chuka = Dev("David Chuka", True)
haks = Dev("Haksoat", False)

# 先实例化PeaceKeeper再调用方法
PeaceKeeper(david_chuka).create_dress_code_for()
PeaceKeeper(haks).create_dress_code_for()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:54:04