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)
MacBook Air 运行pycharm,代码无误,为何总显示未定义对象
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 清风吹雨打芭蕉好大声唉睡不着了起来打游戏 2023-04-17 13:27关注
这段代码中定义了类和类的方法,但是在类定义结束后,调用了类的实例和方法,应该将实例和方法的调用放在类定义后面,而不是在类定义中间。同时,类属性也应该在类定义中定义完毕后才能进行访问。
以下是修改后的代码:
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...”。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 fluent的在模拟压强时使用希望得到一些建议
- ¥15 STM32驱动继电器
- ¥15 Windows server update services
- ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
- ¥15 模糊pid与pid仿真结果几乎一样
- ¥15 java的GUI的运用
- ¥15 Web.config连不上数据库
- ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
- ¥15 怎么配置广告联盟瀑布流
- ¥15 Rstudio 保存代码闪退