一、概述
  类中的方法实际上就是执行某种数据处理功能的函数。
  与普通函数定义一样,类中的方法在定义时也需要使用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 2020-12-22 15:33  史振兴  阅读(971)  评论(0编辑  收藏  举报