zoukankan      html  css  js  c++  java
  • 第十七天学习:python的类(2)

    如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法
    重写方法:
    parent.__init__(self)
    super(child, self).__init__()
     
    实例:
     
    方法重写
    class Parent:  # 定义父类
        def myMethod(self):
            print '调用父类方法'
    
    
    class Child(Parent):  # 定义子类
        def myMethod(self):
            print '调用子类方法'
    
    结果----------------------------------------------------------------------------------------------------
    c = Child()  # 子类实例
    c.myMethod()  # 子类调用重写方法
    ---------------------------------------------------------------------------------------------------------------------
    
    
    
    class parent(object):
        parent_name = 'parent'
        sex = 'F'
        def __init__(self):
            print('my name is {}'.format(self.parent_name))
        def get_name(self):
            print('my name is parent')
            return self.parent_name
        def get_sex(self):
            return self.sex
    
    class child(parent):
        name = 'child'
        def __init__(self):
    #        parent.__init__(self)
            super(child, self).__init__()
            print('my name is {}'.format(self.name))
            print('***********************************')
        def hello(self):
            print('hello world')
        def get_name(self):
            print('##########################')
            super(child, self).get_name()
            print('this is child method')
            print('##############################')
    a = child()
    a.hello()
    a.get_name()
    print(a.get_sex())
    
    结果:
    my name is parent
    my name is child
    ***********************************
    hello world
    ##########################
    my name is parent
    this is child method
    ##############################
    F
    

      

    类的私有属性
    _attr:单下划线,表示的是protect类型的变量,即保护类型只能允许其本身与子类访问。若内部变量标示,如,当使用from M inport时候,不会将以一个下划线开头的对象引入
    __private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问,连子类对象也不能访问到这个数据。在类内部的方法中使用时 self.__private_attrs。
    类的方法
    在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数
    类的私有方法
    __private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 self.__private_methods
     
    内置类属性:
    __name__: 类名
    __doc__ :类的文档字符串
    __dict__ : 类的属性(包含一个字典,由类的数据属性组成)
    __module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
    __bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
     
     
    单下划线、双下划线、头尾双下划线说明:
    __foo__: 定义的是特列方法,类似 __init__() 之类的。
    _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
    __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了
  • 相关阅读:
    Flask第31课——include标签
    flask第30篇——宏macro和import标签
    HTML第三课——css盒子
    HTML第二课——css【2】
    HTML第二课——css
    HTML第一课——基础知识普及【2】
    转一篇数据库面试题
    自创建数字证书,安装到浏览器
    【转】Base64算法详解
    【转】二维码生成原理
  • 原文地址:https://www.cnblogs.com/yshan13/p/7802105.html
Copyright © 2011-2022 走看看