zoukankan      html  css  js  c++  java
  • python编程基础之三十三

    构造方法:

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

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

    • 参数:第一个参数必须是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__()
  • 相关阅读:
    VML 和 SVG 的区别
    ie神器htc
    js函数实现递归自调用的方法
    http状态码
    高级算法——贪心算法(背包问题)
    高级算法——贪心算法(找零问题)
    关于arguments.callee
    检索算法——二分查找
    检索算法——顺序查找(最大值、最小值、自组织数据)
    高级排序算法——快速排序(一种分而治之的算法)
  • 原文地址:https://www.cnblogs.com/higer666/p/9454473.html
Copyright © 2011-2022 走看看