MacBook Air 运行pycharm,代码无误,为何总显示未定义对象

class Student: # student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass
    print(id(Student))
    print(type(Student))
    native_place='吉林'     # 直接写在类里的变量,称为类属性
    def __init__(self,name,age):
        self.name=name                      # self.name称为实体属性,进行了一个赋值操作,将局部变量的name的值赋给实体属性
        self.age=age


    #创建Student类对象
    stu1=Student('张三',20)
    stu1.eat()
    Student.eat(stu1)

这段代码中定义了类和类的方法,但是在类定义结束后,调用了类的实例和方法,应该将实例和方法的调用放在类定义后面,而不是在类定义中间。同时,类属性也应该在类定义中定义完毕后才能进行访问。

以下是修改后的代码:

class Student:
    native_place = '吉林'

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

    def eat(self):
        print(f"{self.name} is eating...")

# 创建Student类对象
stu1 = Student('张三', 20)
stu1.eat()  # 调用实例方法
Student.eat(stu1)  # 通过类调用实例方法

注意,在类定义结束后,首先创建了一个Student类的实例stu1,然后通过实例调用了eat()方法;接着通过类名调用了eat()方法,并传入了stu1作为参数。这两种方法调用的结果是一样的,都是输出“张三 is eating...”。