python笔记:super(),__getitem()__,__call()__

目录

Q1:super(NetworkBlock, self).__init__()什么意思

Q2:__call__() 类的实例圆括号自动调用

Q3:__getitem__() 类的实例 方括号自动调用

Q4:没有双下划线方法时,普通的调用类的方法

总结


Q1:super(NetworkBlock, self).__init__()什么意思

class NetworkBlock(nn.Module):# 定义网络块,由多个BasicBlock组成def __init__(self, nb_layers, in_planes, out_planes, block, stride, dropRate=0.0):# 初始化网络块super(NetworkBlock, self).__init__()
  1. (父类是谁)`NetworkBlock`类的父类是`nn.Module`
  2. (类的继承)`NetworkBlock`类是通过继承`nn.Module`类而创建的。
  3. (调用父类的构造函数,初始化父类的实例)通过调用`super(NetworkBlock, self).__init__()`,实际上是在调用`nn.Module`类的构造函数,以确保在创建`NetworkBlock`对象时正确地初始化`nn.Module`类的相关属性和方法。
  4. (调用父类的构造函数,初始化父类的实例)`super(NetworkBlock, self).__init__()`这行代码的意思是调用父类(或者超类)的`__init__`方法,它是用来初始化父类的实例。
  5. 构造函数和初始化函数是一个东西

类的继承

调用父类的构造函数,并初始化父类的实例

Q2:__call__() 类的实例圆括号自动调用

class Greeter:def __init__(self, name):self.name = namedef __call__(self):print(f"Hello, {self.name}!")# 创建一个Greeter类的实例
greeter = Greeter("Alice")# 调用实例,实际上会调用__call__()方法
greeter()

Q3:__getitem__() 类的实例 方括号自动调用

class CustomList:def __init__(self):self.items = []def __getitem__(self, index):return self.items[index]def __len__(self):return len(self.items)def add_item(self, item):self.items.append(item)# 创建一个CustomList类的实例
my_list = CustomList()# 添加一些元素到列表中
my_list.add_item("Apple")
my_list.add_item("Banana")
my_list.add_item("Orange")# 使用[]索引操作访问元素,实际上会调用__getitem__()方法
print(my_list[1])  # 输出:Banana

Q4:没有双下划线方法时,普通的调用类的方法

传参数看init

调用方法加.(点)

class Person:def __init__(self, name):self.name = namedef greet(self):print(f"Hello, my name is {self.name}!")# 创建一个Person类的实例
person = Person("Alice")# 调用实例的方法来实现类似调用的效果
person.greet()

总结

类的实例叫对象

类的实例初始化时,需要传的参数,要看init

对象 = 类(......)   ....需要看init需要什么

对象调用类的方法

 __call__()方法:对象()

__getitem__()方法:对象[]

对象使用类的普通方法:

对象.啥啥啥    啥啥啥是类定义的

双下划线:魔术方法,严格的私有方法

单下划线:不严格的私有方法

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

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

相关文章

Python 全栈系列230 轻全局函数服务 GFGoLite

说明 为了将GlobalFunc推向正常的应用轨道,构造一个功能简单的服务。 内容 1 工作模式 Server模式:以API服务方式执行 Worker模式: 以Worker方式执行。通过left/right文件夹和rsync方式执行任务并写结果。 2 构造方法 重载和执行;从标…

基于springboot的助农管理系统的设计与实现

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一 、设计说明 1.1研究背…

【网站项目】219一中体育馆管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

pywin32,一个超强的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个超强的 Python 库 - pywin32。 Github地址:https://github.com/mhammond/pywin32 在Python的世界里,有许多优秀的第三方库可以帮助开发者更轻松地处理各种任务。其中&a…

【性能】后台与黑屏

目录 现象观察 调整应用的电池策略 现象观察 切换到后台, 一个心跳期间,就会发close socket 直接黑屏,没有收到任何消息,直接到onclose,然后有离线触发 也到时间。 调整应用的电池策略 修改成“无限制”后,就不会断…

C#面:简单介绍 序列化 和 反序列化

序列化: 是将对象转换为可保持或可传输的形式的过程。 .NET 具有以下序列化技术: 二进制序列化保持类型保真,这对于多次调用应用程序时保持对象状态非常有用。 例如,通过将对象序列化到剪贴板,可在不同的应用程序之…

Linxu自动化构建工具make/Makefile究竟时什么?

Linxu自动化构建工具make/Makefile究竟时什么? 一、简介二、makefile文件制作(简洁版)2.1 源文件2.2 makefile如何制作2.2.1 依赖关系、依赖方法2.2.3 伪目标(清理文件资源) 三、make/Makefile自动化原理3.1 伪目标为什…

SpringBoot+Vue实现el-table表头筛选排序(附源码)

👨‍💻作者简介:在笑大学牲 🎟️个人主页:无所谓^_^ ps:点赞是免费的,却可以让写博客的作者开心好几天😎 前言 后台系统对table组件的需求是最常见的,不过element-ui的el…

Grpc项目集成到java方式调用实践

背景:由于项目要对接到grcp 的框架,然后需要对接老外的东西,还有签名和证书刚开始没有接触其实有点懵逼。 gRPC 是由 Google 开发的高性能、开源的远程过程调用(RPC)框架。它建立在 HTTP/2 协议之上,使用 …

D7805 正电压稳压电路应用——体积小,成本低,性能好

D7805 构成的 5V 稳压电源为输出电压5V,输出电流 1000mA 的稳压电源它由滤波电容 C1,C3,防止自激电容 C2、C3 和一只固定三端稳压器(7805)后级加 LC 滤波极为简洁方便地搭成,输入直流电压范围为 7~35V,此直流电压经过D…

yolov8-更换卷积模块-ContextGuidedBlock_Down

源码解读 class ContextGuidedBlock_Down(nn.Module):"""the size of feature map divided 2, (H,W,C)---->(H/2, W/2, 2C)"""def __init__(self, nIn, dilation_rate2, reduction16):"""args:nIn: the channel of input fea…

Hack The Box-Bizness

目录 信息收集 nmap dirsearch WEB Get shell 提权 get user flag get root flag 信息收集 nmap 端口扫描┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.252 --min-rate 10000 -oA port Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 1…

实测VLLM的加速效果

为了测试vllm的并行加速效果,采用同样的5个提问,编写两个不同的python脚本,分别是compare_vllm.py和compare_chatglm3.py,其中compare_vllm.py采用vllm加速。 服务器参数: 操作系统ubuntu 22.04CPUi7 14700k内存dd5 …

hive中常见参数优化总结

1.with as 的cte优化,一般开发中习惯使用with as方便阅读,但如果子查询结果在下游被多次引用,可以使用一定的参数优化手段减少表扫描次数 默认set hive.optimize.cte.materialize.threshold-1;不自动物化到内存,一般可以设置为 se…

力扣 第 387 场周赛 解题报告 | 珂学家 | 离散化树状数组 + 模拟场

前言 整体评价 手速场模拟场,思路和解法都蛮直接的。 所以搞点活 如果T2,如果不固定左上角,批量查询某个点为左上角,求满足总和 ≤ k \le k ≤k的子矩阵个数 如果T2,如果不固定左上角,求总和 ≤ k \le k…

Spring的Bean的生命周期 | 有图有案例

Spring的Bean的生命周期 Spring的Bean的生命周期整体过程实例化初始化服务销毁循环依赖问题 完整生命周期演示 Spring的Bean的生命周期 Spring Bean的生命周期:从Bean的实例化之后,通过反射创建出对象之后,到Bean称为一个完整的对象&#xf…

EXPLAIN:mysql 执行计划分析详解

目录 EXPLAIN命令 查看执行计划 分析执行计划 优化查询 EXPLAIN中的 type 列类型 在MySQL中,你可以使用EXPLAIN命令来生成查询的执行计划。EXPLAIN命令可以显示MySQL如何使用键来处理SELECT和DELETE语句,以及INSERT或UPDATE语句的WHERE子句。这对于…

SRS Stack提供的鉴权、私人直播间、多平台转播、录制等高级功能的具体使用方法是什么?

SRS Stack提供的鉴权、私人直播间、多平台转播、录制等高级功能的具体使用方法是什么? 鉴权功能:SRS Stack支持通过系统配置中的OpenAPI获取Bearer鉴权,并可以尝试HTTP API。用户可以通过点击网页上的按钮请求HTTP API,或者使用cu…

快上车:什么是人工智能?人工智能和普通程序的区别

什么是人工智能? 虽然AI历史很悠久,上个世纪50年代就有各种概念,但是发展很慢。第一次对人类的冲击就是1997年IBM深蓝击败国际象棋世界冠军,引起了人们的广泛关注,之后又销声匿迹。突然间2016人工智能alphaGO战胜了围…

具身智能计算系统,机器人时代的 Android | 新程序员

【导读】具身智能作为一种新兴的研究视角和方法论,正在刷新我们对智能本质及其发展的理解:传统的 AI 模型往往将智能视为一种独立于实体存在的抽象能力,而具身智能则主张智能是实体与其环境持续互动的结果。 本文深度剖析了具身智能计算系统…