随笔 - 86  文章 - 5  评论 - 11  阅读 - 10万 
一、概述
  类中的方法实际上就是执行某种数据处理功能的函数。
  与普通函数定义一样,类中的方法在定义时也需要使用def 关键字
  类中的方法分为两类:普通方法和内置方法。
  • 普通方法需要通过类的实例对象根据方法名调用
  • 内置方法是在特定情况下由系统自动执行。
 
  普通方法的定义和调用
  在定义类的普通方法时,要求第一个参数需要对应调用方法时所使用的实例对象(一般命名为self,但也可以改为其他名字)。
  当使用一个实例对象调用类的普通方法时,其语法格式为:
  实例对象名.方法名(实参列表)
  提示:在通过类的实例对象调用类中的普通方法时,并不需要传入self参数的值,self会自动对应调用该方法时所使用的对象。
 
二、类中普通方法定义及调用示例
复制代码
 1 class Student: #定义Student类 
 2     name='Unknown' #定义Student类中有一个name属性 
 3     def SetName(self, newname): #定义类的普通方法SetName 
 4         self.name=newname #将self对应实例对象中的name属性值赋为newname 
 5     def PrintName(self): #定义类的普通方法PrintName 
 6         print('姓名:%s'%self.name) #输出self对应实例对象中的name属性值 
 7 if __name__=='__main__': 
 8     stu1=Student() #定义Student类对象stu1 
 9     stu2=Student() #定义Student类对象stu2 
10     stu1.SetName('李晓明') #通过stu1对象调用SetName方法 
11     stu2.SetName('马红') #通过stu1对象调用SetName方法 
12     stu1.PrintName() #通过stu1对象调用PrintName方法 
13     stu2.PrintName() #通过stu2对象调用PrintName方法
复制代码
提示:类的普通方法必须通过实例对象调用,而不能通过类名直接调用。
例如,如果运行    Student.SetName('未知')
        Student.PrintName()
 
系统会分别给出如下报错信息:TypeError: SetName() missing 1 required positional argument: 'newname'
              TypeError: PrintName() missing 1 required positional argument: 'self '
 
(即都缺少了一个位置参数)这是因为通过实例对象调用时会自动将该实例对象传给self,而通过类调用时则不会有这个隐含的参数传递。
posted on   史振兴  阅读(1026)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示