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++的静态绑定。

运行结果如下:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值