除了在对象内部(包括其子类)不能访问的“私有”实例变量在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__()代码,完成初始化。
有同名函数时,子类对象调用子类函数。
子类没有调用的函数时,子类对象调用父类函数。
本文出自 “matengbing” 博客,请务必保留此出处http://matengbing.blog.51cto.com/11395502/1904650
原文地址:http://matengbing.blog.51cto.com/11395502/1904650