python的类方法--实例对象方法

liushao-AI / 2023-08-05 / 原文

https://blog.csdn.net/weixin_60535956/article/details/127432990

 

 方法区别

若要修改实例的属性值,直接使用实例方法。

若要修改类的属性值,直接使用类方法

若是辅助功能(如打印菜单等),考虑使用静态方法,即可在不创建对象的前提下使用。

注意:使用类名不能访问实例属性或实例方法。

 

实例对象方法

类方法的第一个参数一般为self,这种方法称为实例对象方法。实例对象方法对 类的某个给定的实例进行操作,通过self显式地访问该实例。

定义

  def 方法名(self,[形参列表]):

        函数体

调用

    对象.方法名([实参列表]) 

 

私有方法

在方法名字的前边加两个下划线,不可以直接访问!

访问限制及方式:

• 类/对象使用成员名访问

• 类外/对象外不可以访问

• 子类中不可以访问

class Mess:
    def__send_msg(self):                #私有方法
        print('----正在发送短信-----')
    def send_msg(self,new_money):       #公有方法
        if new_money>=10:
            self.__send_msg()
        else:
            print('余额不足,请充值')
mess = Mess()
mess.__send_msg()
Mess. __send_msg()
#AttributeError: 'Mess' object has no attribute ' send_msg’
#AttributeError: 'Mess' object has no attribute ' send_msg'

 

 

类方法
定义
Python声明属于类本身的方法,即类方法。不对特定的实例对象进行操作,且 不能访问实例对象的属性

说明
使用修饰器@classmethod来标识类方法。

格式

 

调用类方法:

实例对象名调用类方法
类名调用类方法
实例

class test:
    num=0
    def __init__(self,age):
        self.age=age
    @classmethod
    def set_num(cls,newNum):
        cls.num=newNum
        print("类方法结果{}".format(newNum))
#类对象调用方法
test.set_num(56)
#实例对象调用方法
test(12).set_num(56)