zoukankan      html  css  js  c++  java
  • python类的继承

    Python 类的一些基本概念

         Python中一切皆对象,声明变量函数等的过程实际上就是它们到内存中为对象分配的空间的连接。

    Python中的类同Java、C++一样。有自己的属性与方法。属于一个对象或类的变量被称为域。 域有两种类型——属于每一个实例/类的对象或属于类本身,它们分别被称为实例变量和类变量。

     类的变量 由一个类的全部对象(实例)共享使用。

    全部对象共用一个类变量的拷贝。对象的变量 由类的每一个对象/实例拥有。因此每一个对象有自己对这个域的一份拷贝。

            类的方法与普通的函数仅仅有一个特别的差别——它们必须有一个额外的第一个參数名称self,可是在调用这种方法的时候你不为这个參数赋值,Python 会提供这个值。self相当于Java中的this,表示是这个对象本身。假设你有一个不须要參数的方法,你还是得给这种方法定义一个self 參数

             类中的__init__方法在创建一个类的新实例的时候。把參数包含在圆括号内跟在类名后面。从而传递给__init__方法。它会在类的一个对象创建时立即执行。__init__方法类似于 C++、C#和 Java 中的构造函数,能够用来对属性赋值。

    如同__init__方法一样,另一个特殊的方法__del__,它在对象消逝的时候被调用。对象消逝即对象
    不再被使用,它所占用的内存将返回给系统作它用。__del__方法与  destructor  的概念类似。

    下面是python类的继承

    #!/usr/bin/python 
    # Filename: inherit.py 
    class SchoolMember: 
        '''Represents any school member.''' 
        def __init__(self, name, age): 
            self.name = name 
            self.age = age 
            print '(Initialized SchoolMember: %s)' % self.name 
        def tell(self): 
            '''Tell my details.''' 
            print 'Name:"%s" Age:"%s"'% (self.name, self.age), 
    class Teacher(SchoolMember): 
        '''Represents a teacher.'''
        def __init__(self, name, age, salary): 
            SchoolMember.__init__(self, name, age) 
            self.salary = salary 
            print '(Initialized Teacher: %s)' % self.name 
        def tell(self): 
            SchoolMember.tell(self) 
            print 'Salary: "%d"' % self.salary 
    class Student(SchoolMember): 
        '''Represents a student.''' 
        def __init__(self, name, age, marks): 
            SchoolMember.__init__(self, name, age) 
            self.marks = marks 
            print '(Initialized Student: %s)' % self.name 
        def tell(self): 
            SchoolMember.tell(self) 
            print 'Marks: "%d"' % self.marks 
    t = Teacher('Mrs. Shrividya', 40, 30000) 
    s = Student('Swaroop', 22, 75) 
    print # prints a blank line 
    members = [t, s] 
    for member in members: 
        member.tell() # works for both Teachers and Students 

    Python 不会自己主动调用基本类的 constructor。你得亲自专门调用它。子类要显示的调用父类的构造函数即__init__方法。与Java一样,Python也是执行时绑定,依照对象的实际类型决定调用的方法,不是C++的静态绑定。

    执行结果例如以下:




  • 相关阅读:
    WINCE/WM5.0如何让安装完后自动运行程序
    Android 图片透明度处理代码
    windows mobile UI 自定义开始菜单图标
    Windows mobile 6捕获键盘操作
    HTTP的post和get总结
    提供一个Windows mobile Native UI 程序,循序渐进开发,并附有代码!
    Windows Mobile 中ComboBox【下拉列表】的使用
    注册表修改今日桌面左右软键的功能
    .net compact framework 注册表操作
    两种实现Toast 的例子(图片&文字)
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7262700.html
Copyright © 2011-2022 走看看