返回顶部
首页 > 资讯 > 后端开发 > Python >Python类方法总结讲解
  • 928
分享到

Python类方法总结讲解

2024-04-02 19:04:59 928人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

一、类方法 在类中的函数称为类方法。与普通函数定义稍有区别。 1.普通方法 1.1 普通方法定义 普通方法与一般函数的定义稍有区别的点在于第一个参数是self,,指代的意思是指向

一、类方法

在类中的函数称为类方法。与普通函数定义稍有区别。

1.普通方法

1.1 普通方法定义

普通方法与一般函数的定义稍有区别的点在于第一个参数是self,,指代的意思是指向实例对象本身。如下图定义


class Person:
    def __init__(self,name,age):
        # name=对象的那个name,age=对象的那个age
        self.name=name
        self.age=age

1.2 普通方法调用

思考一下函数的调用是函数名(),类的方法调用呢?

类方法调用必须要借助对象。调用方式:对象.方法名()。

不能直接用类名.方法名(),前面已经说过了类中的方法第一个参数是self,代表的是实例对象本身,所以类是不能直接调用普通方法的


#实例化对象cat
 cat=Animals()
#调用类中普通方法run
cat.run()

如果使用类名.方法名的时候会出现:TypeError: run() missing 1 required positional argument: 'self',遗失一个参数。

但实际上我们再使用对象.方法名()的时候也没有带self,却没有报遗失一个参数。

原因:当我们实例化对象的时候,即cat=Animal()执行的时候已经将cat的地址传给self,此时self指代的是cat.

2.魔术方法

2.1 魔术方法定义

前面普通方法是需要对象名.方法名()去调用,而我们的魔术方法比较特殊,他是在特殊时刻自动触发,即不需要调用。

2.2 常见魔术方法

__init__(self,[参数名]) 对象创建时自动调用的方法
__str__(self,[参数名]) 函数有返回值,当打印对象名的时候自动调用
__del__(self) 当删除引用时自动调用
__call__(elf,[参数名]) 当执行对象名()时自动调用即把对象当成函数使用

 

看上图我们只是创建了cat对象,并没有调用__init__方法,但是却执行了方法里面的方法体,是因为在创建对象时python自动触发了。

__init__方法有什么作用:

定义一个类时,常常要定义属性和方法,属性是类的一个特征,而方法是它能做的事情。

所有的人都有名字和年龄,所以我们要定义一个Person类,拥有两个属性名字和年龄

如果在类里写如下图


class Person():
   name='jimi'
   age=12
   def run(self):
     print('run')
person1=Person()
person2=Person()

那么person1和person2对象拥有了Person的属性,但是此刻他俩的属性一样,可是并不符合每个人的特征啊?每个人的名字和年龄不一致的。那怎么样才能创造出对象不一样的属性值,这里就用__init__


class Person:
    def __init__(self,name,age):
        # name=对象的那个name,age=对象的那个age
        self.name=name
        self.age=age
 
person1=Person('meimei',12)
# 打印person1的屬性  meimei 12
print(person1.name,person1.age)
person2=Person('john',13)
# # 打印person1的屬性  john 13
print(person2.name,person2.age)

__str__是用來打印对象时返回一个值,所以__str__是有return 语句的。如果不用__str__打印对象,对象就是一个地址


class Person:
    def __init__(self,name,age):
        # name=对象的那个name,age=对象的那个age
        self.name=name
        self.age=age
    # def __str__(self):
    #     return '这是name:{},这是age:{}'.fORMat(self.name,self.age)
 
person1=Person('meimei',12)  #打印结果<__main__.Person object at 0x0000025C1F932C50>
print(person1)

3.类方法

3.1 类方法定义


class Person:
    def __init__(self,name,age):
        # name=对象的那个name,age=对象的那个age
        self.name=name
        self.age=age
    # def __str__(self,*krg,**krgs):
    #     return '这是name:{},这是age:{}'.format(self.name,self.age)
    #类方法
    @claSSMethod
    def test1(cls):
        print('我是类方法')

方法前用装饰器@classmethod修饰。第一个参数为cls代表类

类方法特点:类方法里面不能调用普通方法

3.2 类方法调用

  1. 对象名.方法名()
  2. 类名.方法名()

4.静态方法

4.1 静态方法定义


class Person:
    def __init__(self,name,age):
        # name=对象的那个name,age=对象的那个age
        self.name=name
        self.age=age
    # def __str__(self):
    #     return '这是name:{},这是age:{}'.format(self.name,self.age)
    def run(self):
        Person.test1()
        Person.test()
        print('我是run')
    @classmethod
    def test1(cls):
        print('我是类方法')
    @staticmethod
    def test(*krgs):
        Person.test1()
        print('我是静态方法')

静态方法用装饰器@staticmethod修饰,无cls,self参数

4.2 静态方法调用

对象名.静态方法名()

类名.静态方法名()

总结

普通方法中:

  1. 可调用普通方法,使用self.方法名()
  2. 可调用静态方法,使用类名.方法名()
  3. 可调用类方法,使用类名.类名.方法名()

静态方法:

  1. 不可调用普通方法
  2. 可调用类方法,类名.方法名()
  3. 可调用静态方法,类名.方法名()

类方法:

  1. 不可调用普通方法
  2. 可调用类方法,类名.方法名()
  3. 可调用静态方法,类名.方法名()

到此这篇关于Python类方法总结讲解的文章就介绍到这了,更多相关Python类方法总结内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python类方法总结讲解

本文链接: https://lsjlt.com/news/131090.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python类方法总结讲解
    一、类方法 在类中的函数称为类方法。与普通函数定义稍有区别。 1.普通方法 1.1 普通方法定义 普通方法与一般函数的定义稍有区别的点在于第一个参数是self,,指代的意思是指向...
    99+
    2024-04-02
  • python—类的属性和方法总结
    一、类的属性总结(类的属性定义在方法外,对象的属性定义在方法内)理解:类的(静态)属性:(人类的五官,理解为变量)类的(动态)方法:(人类吃穿住行,理解为一个函数,至少带一个参数self,指向类本身)对象:类的实例化,之后才能有属性和方法1...
    99+
    2023-01-31
    属性 方法 python
  • JavaScript数组常用方法实例讲解总结
    目录数组常用方法concat() 方法join() 方法pop() 方法push() 方法reverse() 方法shift() 方法slice() 方法sort...
    99+
    2024-04-02
  • Python类的继承和方法重写总结
    Python类的继承和方法重写总结  我们都知道类可以继承,通过继承可以实现代码的复用,使代码看起来更加简洁 比如:Class B(A): Pass 定义了一个名为B的类,它继承于A,我们把B叫做A的子类,A叫做B的超类(父类)。 方法重写...
    99+
    2023-01-31
    重写 方法 Python
  • Java中String类常用方法总结详解
    目录一. String对象的比较1. ==比较是否引用同一个对象2. boolean equals(Object anObject)3. int compareTo(String s...
    99+
    2024-04-02
  • Python字典方法总结
    1.清空字典中元素清空,dict变为{}    L.clear()-> None.  Remove all items from L>>> L ={'shaw':23,'sam':36,"eric":40}>&...
    99+
    2023-01-31
    字典 方法 Python
  • php查询类的方法总结
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑 在php中,可以使用get_class_methods()函数来查询类里面有哪些方法。 get_class_...
    99+
    2024-04-02
  • python缺失值的解决方法总结
    1、解决方法 (1)忽视元组。 缺少类别标签时,通常这样做(假设挖掘任务与分类有关),除非元组有多个属性缺失值,否则该方法不太有效。当个属性缺值的百分比变化很大时,其性能特别差。 (2)人工填写缺失值。 一般来说,这...
    99+
    2022-06-02
    python 缺失值
  • python数据结构之递归方法讲解
    目录1.递归概念2. 递归三原则2.1 实现任意进制的数据转换今天我们来学习python中最为重要的内容之递归,对以往内容感兴趣的同学可以查看下面: python数据类型: pyth...
    99+
    2024-04-02
  • Python 序列的方法总结
    最近在做Python 的项目,特地整理了下 Python 序列的方法。序列sequence是python中最基本的数据结构,本文先对序列做一个简单的概括,之后简单讲解下所有序列都能通用的操作方法...
    99+
    2022-06-04
    序列 方法 Python
  • java调用python方法总结
    http://download.csdn.net/detail/xingjiarong/9429266 下载jython包,把其中的jython.jar添加到工程目录 一、在java类中直接执行python语句 import or...
    99+
    2023-01-31
    方法 java python
  • Python--类(讲解)
    Python类 1、面向对象: 根据类来创建对象称为实例化 ,这让你能够使用类的实例。 面向对象编程(Object-oriented Programming,简称 OOP),是一种封装代码的方法。 代...
    99+
    2023-09-04
    python 开发语言
  • JavaString类常用方法梳理总结
    目录一、String类概述概述特点二、使用步骤三、常用方法判断功能的方法获取功能的方法转换功能的方法分割功能的方法一、String类概述 概述 java.lang.String 类代...
    99+
    2024-04-02
  • MySQL分库分表总结讲解
    项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多。以至于查询变慢,而且由于表的锁机制导致应用操作也受到严重影响,出现了数据库性能瓶颈。 当出现这种情况时,我们可以考虑分库分表,即将单个数据...
    99+
    2024-04-02
  • Python数据类型总结
    第1章 数据类型:1.1可变or不可变类型(变量值):变量的三个特点:id/type/value可变类型:值改变,但id不变,证明就是在改变原值不可变类型:值改变,id也跟着变了,证明申请了新的内存空间来存新值,根本没有改变量值Ø  证明浮...
    99+
    2023-01-31
    数据类型 Python
  • 总结Python常用的魔法方法
    目录一、算数运算符的魔法方法二、反运算相关的魔法方法三、增量赋值运算四、一元操作符一、算数运算符的魔法方法 python2.2以后,对类和类型进行了统一,做法就是讲int(...
    99+
    2024-04-02
  • Python 文件操作方法总结
    目录文件处理流程基本操作打开文件 读文件内容关闭文件写文件文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件  r模式...
    99+
    2024-04-02
  • python保存数据方法总结
    python写入保存数据方法 一.使用open()函数介绍open()函数相关使用方法1.保存格式为txt2.数据保存格式为csv1. 数据为字典类型2. 数据为数组类型3. 数据格式为JSO...
    99+
    2023-09-05
    python 数据分析 pandas
  • Python图片爬取方法总结
    1. 最常见爬取图片方法 对于图片爬取,最容易想到的是通过urllib库或者requests库实现。具体两种方法的实现如下: 1.1 urllib 使用urllib.request.urlretrieve方法,通过图片url和存储的名称完...
    99+
    2023-01-31
    方法 图片 Python
  • Java中String类的常用方法总结
    目录概述特点使用步骤常用方法判断功能的方法获取功能的方法转换功能的方法分割功能的方法概述 java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如&quo...
    99+
    2022-11-13
    Java String类常用方法 Java String类 方法 Java String类
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作