【Pyton】【小甲鱼】魔法方法

1.__init__

 1 >>> class Rectangle:
 2     def __init__(self,x,y):
 3         self.x=x
 4         self.y=y
 5     def getPeri(self):
 6         return(self.x+self.y)*2
 7     def getArea(self):
 8         return self.x*self.y
 9
10
11 >>> rect=Rectangle(3,4)
12 >>> rect.getPeri()
13 14
14 >>> rect.getArea()
15 12
16 >>> class A:
17     def __init__(self):
18         return "A fo A-Cup"
19
20
21 >>> a=A() #由于定义了A有返回值了,所以会报错。init无返回值
22 Traceback (most recent call last):
23   File "<pyshell#37>", line 1, in <module>
24     a=A()
25 TypeError: __init__() should return None, not ‘str‘

2.__new__(cls[,])

1 >>> class CapStr(str):
2     def __new__(cls,string): #传入str化身为string
3         string=string.upper() #string转换为为大写字符串
4         return str.__new__(cls,string)#返回的时候必须重写new方法,否则则会自动调用capstr函数
5 >>> a=CapStr("I love fishC.com!")
6 >>> a
7 ‘I LOVE FISHC.COM!‘

3.__del__(self):当对象将要被销毁的时候,此方法就会被调用

 1 >>> class C:
 2     def __init__(self):
 3         print("我是__init__方法,我被调用了...")
 4     def __del__(self):
 5         print("我是__del__方法,我被调用了...")
 6
 7 >>> c1=C()
 8 我是__init__方法,我被调用了...
 9 >>> c2=c1
10 >>> c3=c2
11 >>> del c3
12 >>> del c2
13 >>> del c1 #只有删除了所有引用方法C的对象后,才启动垃圾回收机制,垃圾回收机制在销毁对象的时候,会自动调用del方法,对其中的内容进行垃圾回收,才会打印出来回收的内容。
14 我是__del__方法,我被调用了...
时间: 2024-10-12 07:16:44

【Pyton】【小甲鱼】魔法方法的相关文章

【Pyton】【小甲鱼】类和对象

一.类 定义一个类,例子如下: 1 class Turtle: #定义一个名为Turtle的类,Python中类型约定以大写字母开头 2 #属性 3 color='green' 4 weight=10 5 legs=4 6 shell=True 7 mouth='大嘴' 8 9 #方法 10 def climb(self): 11 print('我正在很努力的向前爬--') 12 def run(self): 13 print('我正在飞快的向前跑--') 14 def bite(self):

【Pyton】【小甲鱼】异常处理:你不可能总是对的

Exception 1.assertionerror举例 1 >>> my_list=['小甲鱼是帅哥'] 2 >>> assert len(my_list)>0 3 >>> my_list.pop() 4 '小甲鱼是帅哥' 5 >>> assert len(my_list)>0 6 Traceback (most recent call last): 7 File "<pyshell#6>"

课时44:魔法方法:简单定制

目录: 一.简单定制 二.课时44课后习题及答案 **************** 一.简单定制 **************** 基本要求:1>> 定制一个计时器的类2>> start和stop方法代表启动计时和停止计时3>> 假设计时器对象t1,print(t1)和直接调用t1均显示结果4>> 当计时器未启动或已经停止计时,调用stop方法会给予温馨的提示5>> 两个计时器对象可以进行相加:t1 + t26>> 只能使用提供的有限

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

小甲鱼PE详解之输入表(导出表)详解(PE详解09)

小甲鱼PE详解之输出表(导出表)详解(PE详解09) 当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一并装入地址空间,再根据DLL 文件中的函数导出信息对被执行文件的IAT 进行修正. ( 基础补充:很多朋友可能看到这里会有点懵,各位看官请允许小甲鱼啰嗦一下,照顾初学者.我们都明白Windows 在加载一个程序后就在内存中为该程序开辟一个单独的虚拟地址空间,这样的话在各个程序自己看来,自己就拥有几乎

小甲鱼PE详解之输入表(导入表)详解(PE详解07)

捷径并不是把弯路改直了,而是帮你把岔道堵上! 走得弯路跟成长的速度是成正比的!不要害怕走上弯路,弯路会让你懂得更多,最终还是会在终点交汇! 岔路会将你引入万劫不复的深渊,并越走越深…… 在开始讲解输入表(导入表)概念之前,请允许小甲鱼童鞋用简短的几句话来总结之前我们学过的内容,并做进一步的思想综合提升,注意咯! 首先,我们知道PE 文件中的数据被载入内存后根据不同页面属性被划分成很多区块(节),并有区块表(节表)的数据来描述这些区块.这里我们需要注意的问题是:一个区块中的数据仅仅只是由于属性相同

python魔法方法-比较相关

在python2.x的版本中,支持不同类型的比较,其比较原则如下: 内置类型: 1.同一类型: 1.1)数字类型:包含int.float.long.complex.bool(bool类型是int的子类,且True=1, False=0).就按照数字的大小进行比较,例如:   1.2)非数字类型:1.2.1)如果类型中定义了如__cmp__.__gt__等魔法方法,就按照其魔法方法的返回值进行比较,具体如何就是这篇文章接下来要讨论的内容.  1.2.2)如果没有定义上述的魔法方法,就按照 id 函

小甲鱼零基础入门PYTHON

 000.愉快的开始 00:17:37 ☆  001.我和Python的第一次亲密接触 00:13:26 ★  002.用Python设计第一个游戏 00:24:00 ★  003.小插曲之变量和字符串 00:19:04 ★  004.改进我们的小游戏 00:26:31 ★  005.闲聊之Python的数据类型 00:18:41 ★  006.Pyhon之常用操作符 00:16:31    007.了不起的分支和循环 00:16:30    008.了不起的分支和循环2 00:12:09  

小甲鱼PE详解之区块表(节表)和区块(节)续(PE详解05)

这一讲我们结合实例来谈谈区块表的定义以及各个属性的含义. 首先,我们先用之前学过的一点知识在二进制文件中手动翻找区块表,这样做的好处是可以使你很快的对PE结构牢记于心.学来的东西就是能用的东西,不能用的理论是空谈,是瞎扯. (具体过程演示大伙可参考小甲鱼的视频教程:<解密系列>系统篇.第五讲) 这里我们经过千辛万苦终于找到了我们的区块表了(当然将来我会教大家写一个自己的工具,让工具去找,现在让大家自己动手是为了增强感觉!),现在我们联系上一章节提到的区块表的结构对各个成员进行详细的分析: ty

小甲鱼课后题第3节

18:以下哪个变量的命名不正确?为什么? (A) MM_520  (B) _MM520_  (C) 520_MM  (D) _520_MM C 因为变量的第一个字符不能是数字 19:. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗? 小甲鱼 20:在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗? '520' 21: 除了使用饭斜杠(\)进行字符转义,还有什么方法可以打印:Let's go! 这个字符串? 22:如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理? >>>