|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小牛有话说:
各位鱼油,大家好。我是小牛,如果您已经看完或者正在看鱼神的《零基础入门学习Python》视频,想随时复习前面的知识点却又不想花太多时间和精力重翻视频,来这里《零基础入门Python学习》整理瞅瞅小牛呕心做的的视频内容的总结吧^_^,如果觉得有用的话,可以点击所属淘贴右上角的“订阅”按钮,这样以后就能够随时看到小牛做的最新的整理了。
年底恰逢各种项目结题,近两周内没有时间和精力更新帖子,这里对关注小牛帖子鱼油们说声抱歉了,后面小牛会尽力加快更新速度,争取在11月份更完类和对象部分。
本期主要内容导读:
这一期我们归纳一下鱼神第四十一讲“类和对象:构造和析构”。这一期里面鱼神主要是介绍了Python类中中三个代表性的魔法方法构造和析构,其中构造方法有__init__和__new__,析构方法为__del__方法。下面将详细介绍他们的用法。
1. __init__(self,*args,**kwargs)类的构造方法,在创建完对象后调用来初始化对象,且规定其返回值为None举例说明:
>>> class Rectangle:
def __init__(self,x,y):
print("正在调用__init__方法...")
self.x = x
self.y = y
def GetPera(self):
return (self.x + self.y)*2
def GetArea(self):
return self.x*self.y
>>> r1 = Rectangle(3,4)
正在调用__init__方法...
>>> r1.GetPera()
14
>>> r1.GetArea()
12
2. new(cls,*args,**kwargs) 类的构造方法,在创建对象时调用并返回一个类对象方法,且其调用在__init__方法之前,举例说明:
>>> class CapStr(str):
def __init__(self,string):
print("正在调用__init__方法...")
self.string = string
super(CapStr,self).__init__()
def __new__(cls,string):
print("正在调用__new__方法...")
string = string.upper()
return super(CapStr,cls).__new__(cls,string)
>>> s1 = CapStr("I love fishc.com...")
正在调用__new__方法...
正在调用__init__方法...
>>> s1
'I LOVE FISHC.COM...'
>>> s1.string
'I love fishc.com...'
3. del(self)方法,用来回收一个对象,在Python中只有当对象所有对其引用都消失时才会调用,将该对象空间释放,举例说明:
>>> class D:
def __init__(self):
print("__init__方法正在被调用...")
def __del__(self):
print("__del__方法正在被调用...")
>>> d1 = D()
__init__方法正在被调用...
>>> d2 = d1
>>> del d1
>>> del d2
__del__方法正在被调用...
>>> d3 = D()
__init__方法正在被调用...
>>> d3 = 4
__del__方法正在被调用...
|
|