NO.17类的重写、私有变量

来源:互联网 发布:java工程师好找工作吗 编辑:程序博客网 时间:2024/05/17 22:28
#!/usr/bin/env python# -*- coding:utf-8 -*-# @Time  : 2017/10/26 16:44# @author : hezefan# @file  : 8.3.py'''类的重写'''##子类想要调用父类的init,怎么办,init初始化的重写需要特殊方法super,回到调用父类的init,也会调用自己的重写##子类的一般方法会顶替掉父类##采用这种方法的时候,父类必须调用objectclass parent(object):    name='parent'    age=100    def __init__(self):        print('my name is parent')    def get_name(self):        return self.name    def get_age(self):        return self.ageclass child(parent):    def __init__(self):        super(child, self).__init__()        print('my name is child')    def hello(self):        print('hello child')a=child()a.hello()print(a.get_name())
#!/usr/bin/env python# -*- coding:utf-8 -*-# @Time  : 2017/10/28 12:00# @author : hezefan# @file  : 8.4.py'''类的私有变量和私有方法'''##当变量格式为“_x”一个下划线的时候,只允许自己以及子类来调用##当变量格式为“__x”两个下划线的时候,只可以被自己的方法来调用class A(object):    _name='hezefan'    __sex='M'    def hello(self):        print(self._name)        print(self.__sex)    def get_sex(self):        print(self.__sex)a=A()print(a._name)#print(a.__sex)  ##会报错print(a.get_sex())  ##这种方法就会打印出来a.hello()     ##hello函数同样调用了双下划线,但是调用成功了,这是自己的内部函数,可以调用print(dir(a))  ##查看实例化类a的方法print(a.__doc__)##类的文档字符串print(a.__class__)print(a.__dict__) #查看类的属性(包含一个字典,由类的属性组成)print(a.__bases__)

 
原创粉丝点击