百人计划

Python类的继承及对象销毁(垃圾回收)

2017-09-13  本文已影响424人  霞姐时间管理

一、Python类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。

  1. 声明类的时候括号中写要继承的父类。
  2. 类的继承衍生出类子类,子类可以继承或重写父类的方法,子类可以自定义新的方法或者成员变量,比如学生类可以继承用户类。
    示例:
#-*-coding:utf-8-*-
class User(object): 
    "user information"
    
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def who(self):
        print 'My name is '+self.name + ".I'm " + str(self.age) + ' years old.'
#类继承
class Student(User):
    def __init__(self,name,age,height): #重写构造方法(在继承中基类的构造方法不会被自动调用,需在派生类的构造中专门进行调用)
       User.__init__(self,name,age)#调用基类的方法时,需加基类的类名前缀,并带self参数变量
       self.height=height  #子类定义新的成员变量
    def who(self):
        User.who(self)
        print "My height is " + str(self.height)+ "."
        
Student('emma',18,170).who() #Python先查找对应类的方法,在派生类中找不到方法,再去基类中查找

运行结果如下:

image.png
注:

1.在继承中基类的构造方法不会被自动调用,需在派生类的构造中专门进行调用。
2.调用基类的方法时,需加基类的类名前缀,并带self参数变量。
3.Python先查找对应类的方法,如在派生类中找不到方法,再去基类中查找。

二、Python对象销毁(垃圾回收)

  1. 同Java语言一样,Python使用了引用计数这一简单技术来追踪内存中的对象。
  2. 垃圾回收机制不仅针对引用计数为0的对象,同样也可以处理循环引用的情况。
    示例:上述实例中如执行:del u1,则u1对象被销毁,打印:User destroyed
注:销毁对象时,析构函数被执行。
上一篇 下一篇

猜你喜欢

热点阅读