python的继承

私有变量

除了在对象内部(包括其子类)不能访问的“私有”实例变量在Python中不存在。但是,大多数Python代码遵循一个约定:以下划线(例如_spam)为前缀的名称应被视为API的非公开部分(无论它是函数,方法还是数据成员)。它应被视为实施细节,如有更改,恕不另行通知。

只能通过本类的非私有方法访问。

#-*- coding:UTF-8 -*-
class parent:
    count=100;
    __privateName="zhansan";
    def __init__(self):
        print ("fu init");
        self.age=10;
        self.num="12234";
        self.name="fu";
    def setName(self,name):
        print ("fulei setName");
        self.name=name;
    def getName(self):
        print ("fulei getName");
        return self.name;
    def getPrivateName(self):
        return self.__privateName;
class child(parent):
    def __init__(self):
        parent.__init__(self);
        print ("zilei init");

    def setName(self,name):
        parent.setName(self,name);
        print ("zilei setName");
    def getName(self):
        print ("zilei getName");
        return parent.getName(self);
    def getPrivateName(self):
        return parent.getPrivateName(self);

a=child();
print (a.getName());
print a.count;
print a.getPrivateName();

初始化类时,先进入子类__init__()方法,调用父类的__init__()构造方法,再

执行子类__init__()代码,完成初始化。

有同名函数时,子类对象调用子类函数。

子类没有调用的函数时,子类对象调用父类函数。

时间: 2024-11-06 07:07:30

python的继承的相关文章

python多继承

http://blog.csdn.net/pipisorry/article/details/46381341 There are two typical use cases forsuper: In a class hierarchy withsingle inheritance, super can be used to refer to parent classes withoutnaming them explicitly, thus making the code more maint

Python之继承

继承是所有开发语言的必修内容,而本文写的只是Python继承中的特殊之处,关于继承概念及内容可以自行百度(不装B,感觉百度挺好的) 1.构造函数: 要说继承,先要说一下构造函数.Java要求是与类名相同并且无返回值,而Python则是强制要求命名为"__init__()". 当创建类的对象时,会自动先调用构造函数,一般用于初始化.构造函数可以不写,那么程序会隐式自动增加一个空的构造函数. 2.继承写法: (1).class 空格 类名称 括号内填写父类名 冒号 具体写法如下 class

python - 回溯继承树 - 自己实现

# -*- coding: utf-8 -*- class test(object): pass class test1(test): pass class test2(test1): pass print test2.__bases__ print type(test2.__bases__[0]) print test2.__bases__[0].__bases__ print getattr(test2.__bases__[0], '__bases__') print '-' * 10 de

python基础——继承实现的原理

python基础--继承实现的原理 1 继承顺序 class A(object): def test(self): print('from A') class B(A): def test(self): print('from B') class C(A): def test(self): print('from C') class D(B): def test(self): print('from D') class E(C): def test(self): print('from E')

Python对象继承set类型

Python对象继承set类型 class Feature(set): def __init__(self): set.__init__(self) # 这里演示将Feature类的加号重载成set.add方法 def __add__(self, feature): set.add(self, feature)

[py]python的继承体系

python的继承体系 python中一切皆对象 随着类的定义而开辟执行 class Foo(object): print 'Loading...' spam = 'eggs' print 'Done!' class MetaClass(type): def __init__(cls, name, bases, attrs): print('Defining %s' % cls) print('Name: %s' % name) print('Bases: %s' % (bases,)) pri

python 子类继承父类__init__(转载)

转载: http://www.jb51.net/article/100195.htm 前言 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 . 注意:这个名称的开始和结尾都是双下划线. 父类A ? 1 2 3 4 5 6 class A(object):  def __init__(self, name):   self.name=name   prin

Python多继承解析顺序的C3线性算法流程解析

Python多继承MRO 在Python2.1中,采用了经典类,使用深度优先算法解析. Python2.2中,引入了新式类,使用深度优先算法和广度优先算法. 在Python2.3以后的版本中,经典类和新式类共存,使用了DFS算法和C3算法. Python2中的经典类 class A(object): pass Python3的新式类 class A: pass C3算法 In computing, the C3 superclass linearization is an algorithm u

python进阶四(类的继承)【4-1 python中继承一个类】

python中继承一个类 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: 1 class Student(Person): 2 def __init__(self, n

Python 面向对象继承

一 什么是面向对象的继承 比较官方的说法就是: 继承(英语:inheritance)是面向对象软件技术当中的一个概念.如果一个类别A"继承自"另一个类别B,就把这个A称为"B的子类别",而把B称为"A的父类别"也可以称"B是A的超类".继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码.在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功