Python类的方法和组成(二)

本文深入解析Python中的类方法,包括公有方法、私有方法、静态方法和类方法的定义、调用方式及应用场景。同时,探讨了实例属性、类属性和私有属性的使用,以及如何在类中正确管理属性。

类的方法的分类: 公有方法、私有方法、静态方法和类方法公有方法
公有方法:方法名前后都带有__,比如module
定义方式:def namemethod(self)
调用方式:对象名.公有方法私有方法
私有方法:私有方法:方法名只有前面带有__,比如 __testPrivate。
定义方式:def __namemethod(self)
调用方式:self._namemethod。注意:不能通过对象名直接调用。只能在属于对象的方法中通过self调用,或者在外部通过python的压缩规则进行调用。
(后文会结合私有属性,附上例子)类方法
类方法
可以直接通过类名调用,也可以通过类的实例访问
静态方法和类方法都无法访问类实例属性,能通过类访问类属于类属性。
类方法,第一个参数必须要默认类,一般习惯用cls。类方法的形参 cls,代表类本身
定义方式:
@classmethod
def methodname(cls)
常见场景
类方法用在模拟java定义多个构造函数的情况。
静态方法
静态方法

可以直接通过类名调用,也可以通过类的实例访问。
静态方法和类方法都无法访问类实例属性,能通过类访问类属于类属性。

静态方法对参数没有要求

定义方式:
@staticmethod
def methodname()
调用方式:类名.方法名

常见场景
类中静态方法方法调用静态方法的情况。静态方法和类方法的简单对比

1、两者都可以通过类对象或类名访问;静态方法和类方法都无法访问实例变量的,但可以通过类名访问类属性。
2、静态方法和类方法,可以减少 创建多实例时 所创造出来的内存空间,加快运行速度
代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、关于属性1:实例属性:最好在__init__(self,…)中初始化,内部调用时都需要加上self.2:类属性:
在__init__()外初始化
类的实例或者直接通过类名都可以访问3:私有属性:
1、单下划线开头:告诉别人这是私有属性,但是外部依然可以访问更改
2、双下划线_开头:外部不可访问。无论是类名还是类实例。
(python中没有绝对真正的私有属性)
实例属性示例代码
*
一个类的对象可以通过点语法为当前类的对象添加一个属性,但这种方式添加的属性只属于这个属于对象,是实例属性属性。

代码
在这里插入图片描述
在这里插入图片描述
访问私有属性和私有方法 示例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class User:
    country="类变量"
    _title="类变量,私有变量"

    def __init__(self):
        self.name="公有变量"
        self._age="公有变量"
        info="局部变量"

    def test(self):
        self.address="公有变量"
        email="局部变量"
u=User()
u.gender="独有变量"

city="全局变量"
info="全局变量"
def test():
    info="全局变量"
    global  city # 全局变量
    city="全局变量"
"""............分割线.................."""
class World:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def instance_method(self,info):
        massage="你好"
        print("实例方法")
    @classmethod
    def class_mathod(cls,info):
        message="你好"
        print("类方法")
    @staticmethod
    def __setstate__(info):
        message = "你好"
        print("静态方法")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值