面向对象之绑定方法

【1】绑定给对象的方法

绑定给对象方法,对象能调用,类也能调用

# 对象调用会把对象自己当成第一个参数传给方法的第一个形参
    对象.方法(参数1,参数2)  -------- self参数不用传
# 类调用,方法中有几个参数就要传几个参数(包括self)
    类名.方法(对象,参数1,参数2)
    
 '''
 绑定给对象的方法,对象不能直接调用,需要传入对象才能调用,
 
 如果是静态对象,可以直接类名.方法调用
 
 非绑定方法(静态方法):@staticmethod    ------- 在方法头上加上@staticmethod
 
 '''

【2】绑定给类的方法

绑定给类的方法,对象可以调用
# 如何使用?
类名() --------- 实例化一个对象
对象.方法  ------ 调用


'''
在方法头上加入@classmethod就是绑定给类的方法
'''

#解释:
    此时该方法就是绑定给类的,那么就有类来调用,有什么特殊之处:就是会把类自动当成第一个参数传递给方法的第一个形参cls
        条件:
            1. 加一个装饰器@classmethod
            2. 把方法的第一个形参改为cls
            3. 外部调用该方法的时候使用类来调用即可
            4. 绑定给类的方法中没有self这个参数了
            5. 绑定给对象的方法中,就没有cls这个参数了

【3】非绑定方法(static)

class Student():def __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = genderself.id = self.create_id()@staticmethoddef create_id():"""当你在函数中不需要对象,也不需要类的时候,就把函数设置为静态方法,类能来调用,对象也能来调用,而且不用传递任何的参数"""import uuidreturn uuid.uuid4()def func(self):"""如果你在方法中即需要对象,也需要类,就把方法绑定给对象"""# self.__class__ # 返回该对象的类# self.__class__.__name__ # Student # 类名字的字符串形式的# return self.__class__() # Student()stu = Student('ly', 20, 'female')
print(stu.id)
print(stu.create_id())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/183451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sitecore “Insert Link“ 时,默认 Ttarget 设置

一、简介 在我们使用 Sitecore “Insert Link“ 通常会插入站内的链接,通常情况下 Sitecore 默认的 Target 时 Custom,如果不想跳新的浏览器 Tab ,就需要手动修改为 Active Browser。如何默认就是 Active Browser 呢,这就是我们今…

[问题解决] no CUDA-capable device is detected

先说环境,在docker下的gpu环境ffmpeg,然后今天突然无法使用,使用时出现如下图所示: 看着报错大致内容是找不到设备,网上寻找一番没有有用的东西,于是决定自己解决,仔细察看一番后,猜…

“华为杯”研究生数学建模竞赛2019年-【华为杯】C题:视觉情报信息分析(续)(附Python代码实现)

目录 五、任务三 5.1 任务分析 5.2 模型建立 5.3 模型计算 5.4 模型评价 六、任务四

MQTT发布_订阅架构(Pub_Sub)

MQTT发布/订阅架构(Pub/Sub) 本文中,将深入研究Pub/Sub架构,在软件架构中一个消息模式,它支持不同组件或系统之间以解耦的方式进行通信。 在前一片文章[MQTT简介]http://t.csdnimg.cn/6lNeZ中,对MQTT有一个…

svn服务端安装

1.下载svn 2.创建一个文件夹 /usr/svn/dev 3.svnadmin create /usr/svn/dev 4.修改/usr/svn/dev/config下的目录的配置文件 authz:权限配置文件,控制读写权限passwd:账号密码配置文件svnserve.conf:svn服务器配置文件 修改svnse…

注解Annotation - Java

注解Annotation 一、介绍二、使用三、三个基本的Annotation四、JDK内置的基本注解类型1、Override2、Deprecated3、SuppressWarnings 五、JDK的元注解1、Retention2、Target3、Documented4、Inherited 一、介绍 注解(Annotation)也被称为元数据&#xf…

算法通关村第一关—青铜挑战—用Java基本实现各种链表操作

文章目录 第一关—链表【青铜挑战】1.1 单链表的概念1.2 链表的相关概念1.3 创建链表 - Java实现1.4 链表的增删改查1.4.1 遍历单链表 - 求单链表长度1.4.2 链表插入 - 三种位置插入(1)在链表的表头插入(2)在链表的中间插入&#…

Docker安装Elasticsearch以及ik分词器

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析&#xff…

225. 用队列实现栈 --力扣 --JAVA

题目 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int…

量子芯片:引领计算技术的新篇章

量子芯片:引领计算技术的新篇章 引言 随着量子计算的飞速发展,量子芯片作为量子计算机的核心组件,日益受到人们的关注。量子芯片的出现,不仅有望推动计算技术的革新,更将在信息安全、药物研发、金融投资等领域掀起巨大的变革。在本篇博客中,我们将深入探讨量子芯片的原理…

大数据-之LibrA数据库系统告警处理(ALM-37015 Gaussdb进程可用文件句柄资源不足)

告警解释 操作系统环境文件句柄不足时,产生该告警。 告警属性 告警ID 告警级别 可自动清除 37015 严重 是 告警参数 参数名称 参数含义 ServiceName 产生告警的服务名称 RoleName 产生告警的角色名称 HostName 产生告警的主机名 Instance 产生告警…

使用STM32微控制器实现烟雾传感器的接口和数据处理

烟雾传感器是常见的安全检测装置,通过检测空气中的烟雾浓度来提醒用户有潜在的火灾风险。本文将介绍如何使用STM32微控制器来实现烟雾传感器的接口和数据处理。包括硬件连接、采集模拟信号、数字信号处理和报警策略等方面。同时,给出相应的代码示例。 一…

mac 聚焦搜索不显示

我是连搜索框都不显示,不是搜索结果显示异常 点右上角的搜索按钮都毫无反应 我检查过快捷键之类的设置,都正常,最后是通过删除文件解决的 cd ~/Library/Preferences/ rm com.apple.Spotlight.plist 重启 mac 参考 Spotlight Search Not W…

Spring Application Event 在事件驱动设计中的应用

1. 什么是事件驱动设计 我们先从去餐厅吃饭来辅助理解什么是事件驱动设计,我们从点菜到上菜通常涉及到以下角色: 服务员厨师上菜员 不同角色的职责: 服务员负责协助点餐厨师负责制作菜品上菜员负责上菜 我们通过事件的角度来考虑整个流程…

Unity引擎:创造无限可能的游戏开发平台

Unity引擎:创造无限可能的游戏开发平台 一、Unity引擎概述1.1 什么是Unity引擎?1.2 Unity引擎的特点和优势 二、Unity开发环境和工具2.1 Unity编辑器2.2 支持的平台2.3 脚本语言2.4 图形和音频工具 三、Unity游戏开发流程四、示例应用场景五、结论&#…

设计模式 -职责链模式

定义 职责链模式是一种对象行为型模式,它常用于处理具有多个处理者的请求。在一个软件系统中,当一个请求可以被多个对象处理时,这些对象可以组织成一条链,并按照这个链传递请求,从而实现了请求发送者和请求处理者之间…

Java JDK 和 JRE 有什么区别

Java JDK 和 JRE 有什么区别 在Java开发中,Java Development Kit(JDK)和Java Runtime Environment(JRE)是两个关键的概念,它们之间存在一些区别。 Java Development Kit (JDK): 用途&#xff1…

HTML h1和h2的三点区别

HTML中的h1和h2 HTML中,h1和h2都是标题元素,二者的关系可以说是递进或递减的关系,如何理解呢?,HTML文档定义的网页一般会被设计成具有一定的结构,而且通常是具有清晰的结构,比如都具有一个主题…

vmware下ubuntu 22.04从主机复制出错

原因分析 vmware下ubuntu 22.04从主机复制出错,如果确定安装了vmware-tools而且重装之后无法解决,大概率是因为vmware-tools和wayland冲突(ubuntu 22.04默认使用wayland而不是xorg) wayland vs xorg Xorg是X窗口系统的最新版本&…

MySQL-函数

一、统计函数 CREATE TABLE student (id INT NOT NULL DEFAULT 1,name varchar(20) not null default ,chinese float not null default 0.0,english float not null default 0.0,math float not null default 0.0 );insert into student values (1,曹操,77,89,85);insert int…