python类私有变量访问和修改_python类的重写和私有变量

1.类的私有变量:

class A(object):

_name='ling'

__sex='F'

def hello(self):

print(self._name)

通过在属性变量名前加上双下划线定义属性为私有属性;

1._XX以单下划线开头的表示的是protected类型的变量,

即保护类型只能允许其本身与子类进行访问。

若内部变量标示,如:当使用"from M import"时,

不会将以一个下划线开头的对象引入;

2.__XX双下划线的表示的是私有类型的变量。只能允许

这个类本身进行访问了,连子类也不可以用于命名

一个类属性(类变量),调用时名字被改变

3.__XX__定义的是特列方法.

python内置类属性:

__dict__:类的属性(包含一个字典,由类的数据属性组成)

__doc__:类的文档字符串

2.类的重写

class parent(object):

name = 'parent'

sex = 'F'

coller = 'yellow'

language = 'chinese'

def __init__(self):

print 'my name is {0}'.format(self.name)

def get_sex(self):

return self.name

a = parent()

a.get_sex()

print '#'*15

class child(object):

name = 'child'

coller = 'yellow'

def __init__(self):

print 'my name is {0}'.format(self.name)

def get_coller(self):

return self.coller

b = child()

print b.get_coller()

print '#'*15

class grandson(parent,child):

name = 'grandson'

def __init__(self):

print 'my name is {0}'.format(self.name)

def get_coller(self):

return self.coller

def get_language(self):

return self.language

#类的重写,只需要重新定义变量,直接打印

def get_name(self):

print 'my name is xiaoming'

c = grandson()

print c.get_coller()

print c.get_language()

c.get_name()

tips:

__init__ 是每个类的默认方法,如果子类想继承父类的__init__ 方法,需要用supper(子类,self)。子类把父类方法重写的时候,会默认忽略父类中的 return

格式:子类想继承__init__

supper(子类名称,self).__init__(有参数就跟参数)

print '$$$$$$$ '   //使用supper函数,会忽略父类中的return,直接执行子类中

supper下的一些方法逻辑,所以直接用print 打出来

格式: 子类想继承父类中的其他方法

supper(子类名称,self).父类中的方法    //没参数就跟父类中的方法名

print '#######'     // 使用supper函数,会忽略父类中的return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值