《Beginning Python From Novice to Professional》学习笔记十一:__Magic__

全面掌握Python:从初学者到专业开发者的进阶之路(第3版) 本文还有配套的精品资源,点击获取 简介:《初识Python:从新手到专业(第3版)》是一本适合不同经验层次程序员的Python编程指南,涵盖了从基础知识到高级概念的完整学习路径。本书内容包括Python基础语法、面向对象编程、函数式编程、文件操作、网络编程、数据库集成、Web开发以及自动化任务等。同时,它还介绍了测试、调试、版本控制等软件开发的实践技能,以及大数据分析、机器... 阅读详情
n大魔力

1.构造函数
   
f = FooBar('This is a constructor argument')
f.somevar   --->
'This is a constructor argument'

在继承机制中调用父类的构造函数
①调用父类的类构造函数(Unbound)
    
 

          
②使用super函数
super函数相当智能,尤其在多重继承的情况下。

本书作者对这两种方法的一种总结:You don’t have to understand exactly how it works internally, but you should be aware that, in most cases, it is clearly superior to calling the unbound constructors (or other methods) of your superclasses.

2.基本Sequence和Mapping协议(Protocol)
关于Protocol的说明:Where other languages might require an object to belong to a certain class, or to implement a certain interface, Python often simply requires it to follow some given protocol. 我的理解是要使得对象具有某种Builtin对象的性质所必须的一种规范。

__len__(self):
在Sequence中返回元素的个数,在Mapping中返回key-value对的个数。如果__len__返回zero(前提是未实现__nonzero__),则此对象会被当做Boolean值的false(与空 lists, tuples, strings, dictionaries相同)。
__getitem__(self, key):
返回与key相应的值,Sequence中key为0到n-1(也可以为负,后述),Mapping中为实际的key
__setitem__(self, key, value):
只能在可写对象中使用
__delitem__(self, key):

以上四个Protocols的几点说明:
①如果Sequence中的key为负数,则为从后倒数,如x[-n] = x[len(x)-n]
②如果key的类型不对,如在Sequence中使用String为key,会引发TypeError异常
③如果Sequence的key的类型对,但是越界,会引发IndexError异常

一个自定义Sequence的例子:
 
  
下面是对此类的使用:
s = ArithmeticSequence(1, 2)
s[4]   ---> 9
s[4] = 2
s[4]   ---> 2
s[5]   ---> 11
其行为像Sequence,可以使用[]操作符,类似于C++中的Operator重载。

# ArithmeticSequence类没有定义__delitem__,所以del s[4]这样的行为会引起异常。
# s["four"]会引起TypeError
# s[-42]会引起IndexError
# 类中未定义 __len__ ,因为这是个无限长的Sequence。


## 在制作这种类似于Builtin类的时候要注意一点就是尽量遵从标准,比如这里就尽管用的是{}Dictionary,但还是用isinstance(key, (int, long))来检查key是否为整数,因为Builtin的key只能是整数。

如果从标准库继承类(这种类叫 UserList, UserString, UserDict),则不需要自己写所有的方法,只要重写自己需要的方法:

#在这里就可以直接使用list中的 append, extend, index等等函数,以下为使用:
cl = CounterList(range(10))
cl   ---> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
cl.reverse()
cl   ---> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
del cl[3:6]
cl   ---> [9, 8, 7, 3, 2, 1, 0]
cl.counter   ---> 0
cl[4] + cl[2]   ---> 9
cl.counter   ---> 2
Beginning Python From Novice to Professional(3rd) 无水印pdf Beginning Python From Novice to Professional(3rd) 英文无水印pdf 第3版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除 立即下载

相关推荐

python基础教程(Beginning Python From Novice to Professional)书中源码例子

python基础教程 (Beginning Python From Novice to Professional) 书中源码例子

转 DC使用

https://blog.youkuaiyun.com/moon9999/article/details/75808353 Design Compiler的作用是将RTL级代码转化为门级网表,为后续的时序分析和后仿做准备,其过程主要包括translation、optimization和mapping。DC的实...

msrgr的专栏 3350

Python基础教程 Beginning Python From Novice to Professional.zip

Python基础教程 Beginning Python From Novice to Professional.zip,收录了 Python基础教程 Beginning Python From Novice to Professional 中英文各版本和源码,包括(第2版)和 (第3版),都有详尽的书签,不是一级目录的,有的电子版还没有。

dc_shell教程

好长时间了想搞懂dc的脚本书写 终于让我找见一个好的教程 写的非常详细 弄过来给大家参考。   Design CompilerTutorial --------------------------------------------------------------------------------   Before running synthesis the tool envi

mjwwzs的博客 1万+

Apress.Beginning.Python.From.Novice.to.Professional.3rd.Edition.

亲测很好,很新,很全的Python 入门学习资料(转点奶粉钱)

Beginning Python From Novice To Professional(2rd Edition) (中文版)

Python开发教程,包含基本语法的说明及大量实例讲解,适合初级开发人员学习,可作为高级开发人员参考资料

Design Compiler:目标(target)库、链接(link)库、符号(symbol)库、综合(synthetic)库和物理(physical)库的详细解析

Design Compiler综合需配置多种库:目标库(target_library)用于映射标准单元,链接库(link_library)解析引用,符号库(symbol_library)支持原理图显示,综合库(synthetic_library)提供DesignWare组件。逻辑库(.db)含时序、功耗等信息,物理库(.pdb)用于拓扑模式下的物理综合。默认情况下,Design Compiler自动加载主库并基于其设置单位、工作条件等。

保持终身学习的能力,温故而知新 5836

Matlab路径文件pathdef.m可能为只读文件修改方法

找到MATLAB目录下的bin这个文件夹,直接改这个文件夹的权限(之前试过改pathdef.m的权限,不好用)如果到这里重新导入还是不行,从官网重新下载需要的安装包,可能是你的安装包出了问题。(Win11系统,matlab版本为2022b)编辑——添加——在输入对象名称来选择中输入everyone。重启matlab,以管理员身份运行。并修改其他已有的权限,都给它。

yqc1123的博客 1万+

DC综合——学习笔记

综合所需要的文件: RTL设计文件(DUT的内容); 标准单元的库文件; 其他库文件(如IO库,IP库等等); 综合输出的文件: 综合后的门级网表; 带时序约束信息的sdc文件: 其他一些后端需要用的特殊配置,如dont_touch设置等 保留综合结果的ddc文件(之后可以直接load这个文件,查看综合结果); 综合的基本流程: 两种启动DC方式: dc_shell design_vision dc打开时会自动运行当前目录下的.synopsys_dc.setup文件。一些统一的参数配置等可以写在这个文件里。

zgezi的博客 5万+

保姆级教程:在Windows 11上用VSCode和Conda搞定Depth-Anything-3(含常见报错修复)

本文提供在Windows 11系统上使用VSCode和Conda配置Depth-Anything-3的完整教程,涵盖环境搭建、依赖安装、常见报错修复及深度图生成实战。特别针对CUDA与PyTorch版本匹配、Hugging Face镜像加速等关键问题提供解决方案,帮助开发者高效实现计算机视觉中的深度估计应用。

weixin_30338481的博客 347

数据分析:美团大赛的具体案例制作

在数据集中,存在三个变量的经纬度数据,分别是商家的经纬度数据('sender_lng', 'sender_lat'),顾客的经纬度数据('recipient_lng', 'recipient_lat')和骑手的经纬度数据('grab_lng', 'grab_lat')。根据结果可知,平台订单创建时间的中位数为2022-10-21 02:59:01,平台订单创建时间的众数为2022-10-19 03:29:41、2022-10-23 03:29:47,与直方图相符。接下来,我们对是否为预定订单变量进行分析。

m0_68269346的博客 2500

《Beginning Python From Novice to Professional》学习笔记五:Advanced String

1.格式化 format=hello, %s. Your ID is %d. values=(thy, 38) print format % values ---> hello, thy. Your ID is 38. 如第二句如示,要修饰多个元素,可以用Tuple,也可以用Dictionary(但不可以用List,因为List会被认为仅仅是一个单值) 2.模板(此功能不是内置的,因此

thy专栏 762

嵌入式开发实战:LWIP中PPP协议配置全流程(含CHAP认证避坑指南)

本文是一份嵌入式开发实战指南,详细解析了如何在STM32平台上配置LWIP协议栈中的PPP协议,实现从串口到IP网络的完整连接。内容涵盖工程搭建、源码整合、关键配置、串口驱动绑定、状态管理以及CHAP认证等核心流程,并重点提供了CHAP认证失败的排查与避坑指南,帮助开发者高效打通嵌入式设备的网络连接。

plant的博客 464

《Beginning Python From Novice to Professional》学习笔记十二:__Magic__

1.属性访问class Rectangle: def __init__(self): self.width = 0 self.height = 0 def setSize(self, size): self.width, self.height = size #我的理解是自动组成Tuple def getS

thy专栏 970

【100%通过率】华为od 机试真题 C语言 实现【补种未成活胡杨】

近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?

MISAYAONE的博客 1655

数据挖掘实战-基于KMeans算法对超市客户进行聚类分群

本实验基于KMeans算法对超市客户进行了聚类分群。通过对客户购物数据进行聚类,我们成功将客户分为不同的群体。每个群体代表了具有相似购物行为和偏好的客户群体。通过实验结果,我们发现了客户群体之间的明显差异和共性。不同群体的客户在购买频率、购物金额和购买种类等方面有所区别。这为超市提供了重要的市场细分信息,帮助超市经营者更好地了解不同客户群体的需求和喜好,制定有针对性的营销策略和商品推荐,提高客户满意度和忠诚度。此外,实验还揭示了超市客户的购物行为规律,为超市优化商品陈列和促销策略提供了指导。

m0_64336780的博客 2万+

《Beginning Python From Novice to Professional》学习笔记六:Dictionary

1.创建(注意Dictionary是没有顺序的) phonebook = {Alice: 2341, Beth: 9102, Cecil: 3258} 冒号之前为key,之后为value,key必须具有唯一性。 items = [(name, Gumby), (age, 42)] d = dict(items) ---> {age: 42, name:

thy专栏 973

CKA-题库-简洁参考答案-反复练习20遍-必过!!!

新版CKA考试已于2020年9月1日正式上线! 考试模式:线上考试 考试时间:2小时 认证有效期:3年 软件版本:Kubernetes v1.19 重考政策:可接受1次重考 经验水平:中級 题目数量:17题 题库量小:随机的题目重复率极高 考试时可打开两个浏览器Tab,一个是考试窗口,一个用来查阅官方文档](https://kubernetes.io/docs/) 01 Task - 英文 Create a new ClusterRole named deployment-clusterrole tha.

随笔记录-分享&记忆 7318

《Beginning Python From Novice to Professional》学习笔记八:Abstraction

Laziness Is a Virtue --- Real programmers are lazy. Not lazy in a bad way, but in the sense that they don’t do unnecessary work. 1.创建函数 def fibs(num): result = [0, 1] for i in range(num-2)

thy专栏 851

麒麟系统无法进入单用户模式该怎么办?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1821

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

这些年我读过的技术经典图书(附电子版下载地址)

本人大学期间专业是数学与应用数学, 2009年毕业, 学习不怎么样. 毕业后才开始接触计算机, 做过C开发, 系统运维和测试, 这4年我读了很多书, 电子书和纸质的, 这些书中有很多很经典的图书和资料, 现在拿来和大家分享一下. 每个资料都有下载衔接,大家可以直接下载, 都是免费的. C技术资料 1.> 作者: 谭浩强 这是我推荐的第一本书, 也是我接触的第一本书, 为什么把它

shitao827194819的专栏 2620

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python基础教程

本书包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识。最后,作者结合

xiaotom5的专栏 1324

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

《Python基础教程(第三版)》阅读笔记

本文参考自《Beginning Python: from novice to professional》,中文版为《Python基础教程(第三版)》。

yyywxk的博客 612

Beginning Python From Novice to Professional (5) - 条件与循环

条件与循环 条件运行: name = raw_input('What is your name? ') if name.endswith('Gumby'): print 'Hello, Mr.Gumby'What is your name? Gumby Hello, Mr.Gumbyname = raw_input('What is your name? ') if name.e...

weixin_34112030的博客 179

Beginning Python From Novice to Professional (3) - 列表操作

列表操作 list函数: >>> list('hello') ['h', 'e', 'l', 'l', 'o']改变列表: >>> x=[1,1,1] >>> x[1]=2 >>> x [1, 2, 1]删除元素: >>> names = ['wu','li','zhao','qian'] >>> del names[1] >>> names ['wu', 'zhao', 'qian']分

Marvin_wu 1203
上一篇: VC 2005——DEGUGGING
下一篇: 《Beginning Python From Novice to Professional》学习笔记十二:__Magic__
thy38
博客等级 码龄19年 184粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值