zoukankan      html  css  js  c++  java
  • python 3.x 学习笔记10 (析构函数and继承)

    1.类变量的用途:
    大家公用的属性,节省开销(内存)

    2.析构函数
    在实例释放和销毁的时候执行的,通常用于做一些收尾工作,如关闭一些数据库链接和打开的临时文件

    3.私有方法
    两个下划线开头,声明该方法为私有方法,不能在类地外部调用。

    4.私有属性
    两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。

    5.

    继承的时候重写构造函数要先将父类的所有参数写一遍加上子类变量,然后调用父类,再添加子类的实例化变量。

    6.
    python2.x 经典类是按深度有先来继承的,新式类是按广度有先来继承的。

    python3.x 经典类和新式类都是统一按广度优先来继承的。

    练习

     1 #父类1
     2 class Person(object):         #新式写法
     3 
     4     def __init__(self,name,age):
     5         #构造函数
     6         self.name = name           #实例化变量(静态属性) ,作用域为实例化本身
     7         self.age = age
     8         self.friends = []
     9 
    10     def eat(self):                  # 类方法 功能(动态属性)
    11         print('%s will eat something ! '%self.name)
    12 
    13     def run(self):
    14         print('%s will runing !'%self.name)
    15 
    16     def sleep(self):
    17         print('%s will sleep !'%self.name)
    18 
    19 #父类2
    20 class Relation(object):
    21     def make_friends(self,obj):
    22         print('%s make friend with %s'% (self.name,obj.name))
    23         self.friends.append(obj)       #这里传的参数是obj,在这例题里 obj既是 w1
    24 
    25 
    26 #子类
    27 class Man(Person,Relation):                      #多继承
    28     def __init__(self,name,age,money):           #重写构造函数
    29         #Person.__init__(self,name,age,money)     #经典写法
    30         super(Man,self).__init__(name,age)        #新式写法,建议用这种写法
    31         self.money = money
    32 
    33     def piao(self):
    34         print('%s is piaoing .......'% self.name)
    35 
    36 
    37 #子类
    38 class Woman(Person,Relation):                 #多继承
    39     def piao(self):
    40         print('%s is piaoing .......'% self.name)
    41 
    42 m1 = Man('张三',20,10)
    43 
    44 w1 = Woman('lili',21)
    45 
    46 m1.make_friends(w1)
    47 print(m1.friends[0].name)
    48 print(m1.friends[0].age)
    49 
    50 # m1.piao()
    51 # m1.eat()
    52 # m1.run()
    53 # m1.sleep()
  • 相关阅读:
    聚会
    Wannafly summer camp Day2
    HDU6627 equation
    2019牛客暑期多校D.Big Integer
    对主席树的理解以及使用
    2019牛客暑期多校训练营(第四场)C.sequence(单调栈+线段树)
    2019 Multi-University Training Contest 1
    浅谈序列自动机
    2019江西省程序设计竞赛
    拉格朗日插值的应用
  • 原文地址:https://www.cnblogs.com/hsj-jingyu/p/8410771.html
Copyright © 2011-2022 走看看