我是靠谱客的博主 花痴魔镜,最近开发中收集的这篇文章主要介绍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,"类名称调用")

在这里插入图片描述

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中类的方法总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部