码迷,mamicode.com
首页 > 编程语言 > 详细

python编程基础之三十三

时间:2018-08-10 13:43:15      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:析构   return   item   def   name   dingding   hide   根据   expand   

构造方法:

  • 目的:构造方法用于初始化对象,可以在构造方法中添加成员属性

  • 触发时机:实例化对象的时候自动调用

  • 参数:第一个参数必须是self,其它参数根据需要自己定义

  • 返回值:不返回值,或者说返回None,不应该返回任何其他值

技术分享图片
1 def __init__(self,arg1,arg2....):
2         函数体
3 #参数:arg1,agr2...根据需要自己定义
4 #如果自己不定义构造方法,系统自动生成一个构造函数
5 def __init__(self):
6   pass
View Code

如果自己没有写构造方法,系统会自动生成一个构造方法,里面除了self,没有任何参数,

技术分享图片
 1 class Dog(object):
 2     def __init__(self,name,kind,age):
 3         self.name = name  #定义对象属性,这个类所有的对象都具有该属性
 4         self.kind = kind  #成员属性必须通过self.引用,否则是普通变量
 5         self.age = age
 6 
 7     def bark(tmp):
 8         print(我是小可爱)
 9 
10 dingding = Dog(大黄,泰迪,3)
11 print(我是可爱的%s犬,%s,我今年%d岁了 % (dingding.kind, dingding.name, dingding.age))
View Code

析构方法:

  • 目的:对象销毁时,释放资源

  • 时机:对象销毁时由系统自动调用

  • 参数:除了self外,没有其他参数

  • 返回值:不返回值,或者说返回None。

 1 def __del__(self): 2 #to do 

技术分享图片
 1 class Dog(object):
 2     #构造
 3     def __init__(self,name,kind,age):
 4         self.name = name
 5         self.kind = kind
 6         self.age = age
 7     #析构
 8     def __del__(self):
 9         print(拜拜了,二十年后又是一条好汉)
10     def bark(tmp):
11         print(我是小可爱--丁丁)
12 
13 dingding = Dog(丁丁,泰迪,3)
14 print(我是可爱的%s犬,%s,我今年%d岁了 % (dingding.kind, dingding.name, dingding.age))
15 del dingding  #销毁对象,自动调用析构方法
16 
17 #在函数中对象,当函数结束运行时,自动析构
18 def test():
19     td = Dog(当当,泰迪,3)
View Code

 还介绍一个魔术方法比较常用:__str__()

这个魔术方法可以让你定义的对象输出的时候不会是一个地址了,看到的可以是你希望看到的字符串,

  • 目的:将对象转化为字符串

  • 时机:凡是涉及对象向字符串转换的都会调用

  • 参数:self

  • 返回值:字符串

技术分享图片
 1 class Animal:
 2     def __init__(self,name,age):
 3         self.name = name
 4         self.__age =age
 5     def __str__(self):
 6         return "name : {} age : {}".format(self.name,self.__age)
 7     def __repr__(self):
 8         return  self.__str__()
 9 a1 = Animal(zhu,3)
10 print(a1)
11 print(我是一头可爱的  + str(a1)
__str__()

 

python编程基础之三十三

标签:析构   return   item   def   name   dingding   hide   根据   expand   

原文地址:https://www.cnblogs.com/higer666/p/9454473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!