首页 > 编程语言 >python的类方法--实例对象方法

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

时间:2023-08-05 17:01:39浏览次数:40  
标签:python self send -- 实例 对象 msg 方法

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)

 

标签:python,self,send,--,实例,对象,msg,方法
From: https://www.cnblogs.com/liushao-AI/p/17608207.html

相关文章

  • 系统调用
    系统调用系统调用是什么:  系统调用是用户在编程时调用的操作系统功能。系统调用的作用:  系统调用是操作系统提供给编程人员的唯一接口;使CPU状态从用户态陷入内核态的唯一途径。典型系统调用举例:每个操作系统都提供几百种系统调用(进程控制、进程通信、文件使用、目录操作......
  • 《软件测试的艺术》原书第三版 - 第六章 - 更高级别的测试
    第六章更高级别的测试软件产品开发周期的模型软件最终用户的要求转换为一系列书面的需求。这些需求就是该软件产品要实现的目标。通过评估可行性与成本、消除相抵触的用户需求、建立优先级和平衡关系,将用户需求转换为具体的目标。将上述目标转换为一个准确的产品规格说明,将......
  • 死锁相关问题
    什么是死锁死锁是指两个(或多个)线程相互等待对方数据的过程,死锁的产生会导致程序卡死,不解锁程序将永远无法进行下去。资源大部分的死锁都和资源有关,在进程对设备、文件具有独占性(排他性)时会产生死锁。把这类需要排他性使用的对象称为资(resource)。资源主要分为可抢占资源和不......
  • vnc Ubuntu18.04~Ubuntu22.04安装并配置
    原文链接:Ubuntu18.04~Ubuntu22.04安装并配置VNC(yii666.com) 文章目录前言一、VNC是什么?二、系统环境1.前提2.打开Share开关3.安装x11vnc4.测试1.使用方法2.重要补充总结 前言有些操作需要Desktop环境而又不方便去现场看的这个方法能够满足你的需......
  • 分库分表
    1.分表比如你单表都几千万数据了,你确定你能扛住么?绝对不行,单表数据量太大,会极大影响你的sql执行的性能,到了后面你的sql可能就跑的很慢了。一般来说,就以我的经验来看,单表到几百万的时候,性能就会相对差一些了,你就得分表了。分表是啥意思?就是把一个表的数据放到多个表中,然后......
  • docker rm
     bim@bim114:/data$sudodockerimages|grepnone|awk'{print$3}'2acf3d17a200a5e42b93c93535c90cd89fc593894b576f0c0bd0be7f24e66acecd00de00729f0cd01664ecb08cdb7f69f941cfbd4bae98aaa85e328976778f8a63e4653240a3272c5f552a20682ad1ebc9210......
  • https访问
    想使用https访问asp.net core的API,从腾讯云上申请了免费的自签名证书,但是因为绑定的域名,用域名访问又需要备案麻烦,所以想客户端测试暂时用IP地址进行,但是在访问的时候报错。Theremotecertificateisinvalidaccordingtothevalidationprocedure:RemoteCertificateNameMism......
  • 线段树
    线段树除了最后一层满二叉树,用堆(一维数组)来存树,一般来说,开4n的空间build(intu,intl,intr)将一段区间初始化为线段树pushup()由子节点更新父节点的信息pushdown()(懒标记)把信息递归的更新到两个子节点modify()/update()u为结点编号,更新该结点的区间最大值修改--单点修改......
  • day125-aop
    aop简介AOP(AspectOrientedProgramming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,它以通过预编译方式和运行期动态代理方式实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。相关术语横切关注点从每个方法中抽取......
  • 05服务拆分-案例Demo
    下载对应初始项目cloud-demo链接:https://pan.baidu.com/s/1NpovDVLj8ZSrDjt2seID2A?pwd=dp3f提取码:dp3f准备数据库dockerpsdockerexec-it6d542566d077/bin/bashpsql'host=localhostport=5432user=postgresdbname=postgres'createdatabasecloud_order;cre......