概述
python中类的方法总结
在python中,类的方法有如下三种:
(1)实例方法(即:对象方法)
(2)类方法
(3)静态方法
下面,将对这三种方法进行总结。
1、实例方法(对象方法)
通常情况下,类中的方法默认是实例方法,在定义的时候不需要使用使用特殊的关键字进行标识。
基本知识
对于实例方法,我们需要了解以下的基本知识:
(1)实例方法至少有一个参数,默认该参数的名字为“self”(也可以是其他的),若有其他参数,可以跟在该参数后面
(2)实例方法有两种调用方式:
第一种:通过实例对象调用,该方法不需要手动传递实例参数,编译器在后期加载的时候会把实例p加载至实例参数,具体参见代码示例
第二种:通过类名称调用,该方法需要手动传递实例参数,具体参见代码示例
注意: 从上面的两种调用方法我们可以知道,实例方法被调用时要向它的第一个参数传递实例对象。
代码
#实例方法代码
class Student:
name="jom"
age=21
#实例方法有两个参数的情况,其中self为默认参数,需要向它传递实例对象,str为字符串类型,由用户在调用时自行添加
def instanceshow(self,str):
print(self,self.name,self.age,str)
p=Student()
print("输出实例p:")
print(p)
print("输出类名称Student:")
print(Student)
print("使用实例对象调用的结果:")
p.instanceshow("实例对象调用")
print("使用类名称调用的结果:")
Student.instanceshow(p,"类名称调用")
2、类方法
基本知识
(1)类方法要使用装饰器@classmethod来修饰,一般情况,第一参数默认命名为cls(cls=class,可以是别的名字)
(2)类方法有两种调用方式:
第一种:使用类的名称调用,参见代码示例
第二种:使用实例调用,参见代码
注意: 从以上的两种调用方式,我们需要知道,类方法调用的时候,会向他的第一个参数传递类的名称
代码
#类方法代码
class Student:
name="jom"
age=21
@classmethod
def classshow(cls,str):
print(cls,cls.name,cls.age,str)
p=Student()
print("输出实例p:")
print(p)
print("输出类名称Student:")
print(Student)
print("使用实例调用的结果:")
p.classshow("实例调用")
print("使用类名称调用的结果:")
Student.classshow("类名称调用")
3、静态方法
静态方法,和我们之前在其他语言中学到的静态函数时很相似的,去呗就在于,静态方法,定义在类的命名空间中,而函数定义在全局命名空间中。
基本知识
(1)静态函数通过装饰器@staticmethod修饰
(2)静态函数的调用有以下两种方式:
第一种:实例调用,参见代码
第二种:类名称调用,参见代码
静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。也正因为如此,类的静态方法中无法调用任何类属性和类方法。
注意: 我们需要知道在调用静态函数时不会向函数传递任何特殊参数,在上面的实例方法和类方法中都有自己的特殊参数,用来和类或者对象进行捆绑使用,而静态方法是没有的。虽然它没有参数,但是不意味着它没有参数,它也是可以拥有普通参数的,比如字符串类型。
代码
#静态方法代码
class Student:
name="jom"
age=21
@staticmethod
#str是普通参数,非特殊参数,没有和其他类或者对象进行捆绑
def staticshow(str):
print(Student,Student.name,Student.age,str)
p=Student()
print("输出实例p:")
print(p)
print("输出类名称Student:")
print(Student)
print("使用实例调用的结果:")
p.staticshow("实例调用")
print("使用类名称调用的结果:")
Student.staticshow("类名称调用")
类的方法归总
对于以上三种类的方法,我们需要知道以下几点:
- 实例方法(对象方法):随着实例属性的改变而改变
- 类方法:类属性的值,不随实例属性的变化而变化
- 静态方法:不可以访问类属性,直接输出传入方法的值
下面我们将实例方法,类方法和静态方法放在同一个代码中,进行对比。
class Student:
name="jom"
age=21
@staticmethod
#str是普通参数,非特殊参数,没有和其他类或者对象进行捆绑
def staticshow():
print(Student.name,Student.age)
@classmethod
def classshow(cls):
print(cls.name, cls.age)
def instanceshow(self):
print(self.name, self.age)
s=Student()
print("使用静态方法:")
s.staticshow()
# s.age=11
# print("修改age后再次使用静态方法:")
# s.staticshow()
p=Student()
print("使用类方法:")
p.classshow()
p.name="tom"
print("修改name后再次使用类方法:")
p.classshow()
q=Student()
print("使用实例方法:")
q.instanceshow()
q.name="alen"
print("修改name后再次使用实例方法:")
q.instanceshow()
最后
以上就是花痴魔镜为你收集整理的python学习笔记:类的方法总结python中类的方法总结的全部内容,希望文章能够帮你解决python学习笔记:类的方法总结python中类的方法总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复