python中的引用法总结_Python学习笔记:类的方法摘要,python,总结

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,"类名称调用")

3714cfde70c174288b4fd0a9296ae0e6.png

2、类方法

基本知识

(1)类方法要使用@classmethod来修饰,一般情况,第一参数默认命名为cls(可以是别的名字)

(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("类名称调用")

7ba7cadaf3220b7a533aa8b1ab1c2f93.png

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("类名称调用")

a84e35caf1c34e3777bd7f63ea8c2530.png

类的方法归总

对于以上三种类的方法,我们需要知道以下几点:

实例方法(对象方法):随着实例属性的改变而改变

类方法:类属性的值,不随实例属性的变化而变化

静态方法:不可以访问类属性,直接输出传入方法的值

下面我们将实例方法,类方法和静态方法放在同一个代码中,进行对比。

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()

5450b24120e5a157173cb4c9994b2911.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值