zoukankan      html  css  js  c++  java
  • 封装

    # 类的三大特性:继承,封装,多态。

    # 封装?

    class A:

    def __init__(self,name):
    self.name = name

    obj = A('二狗')
    # 广义的封装:就是将一些内容放到一个'容器'中.
    # 狭义的封装:私有。
    # 类的结构:
    class B:
        country = 'China'  # 静态变量(属性,字段)
        __name = 'alex'  # 私有静态变量
    
        def func(self):  # 动态普通方法
            pass
    
        def __func(self):  # 私有方法
            pass
    
        def __init__(self,name,age):  # 特殊方法:双下方法
            self.name = name
            self.__age = age  # 私有对象属性
        @property  # 属性
        def f1(self):
            pass
    
        @classmethod  # 类方法
        def func2(self):
            pass
    
        @staticmethod  # 静态方法
        def func3(self):
            pass
    # 私有成员:私有变量,私有对象属性,私有方法
    # 私有成员:类外面不可以访问,派生类不可以访问,类内面可以访问
    class A:
        country = 'China'  # 静态变量(属性,字段)
        __name = 'alex'  # 私有静态变量
        def __init__(self, name, age):
            self.name = name
            self.__age = age
    
        def func(self):  # 动态普通方法
            print(self.__name)
    
        def __func(self):  # 私有方法
            pass
    
    class B(A):
        def func2(self):
            print(self.__name)
    
    obj = A('二狗', 18)
    print(obj.country) # 类外面可以访问
    print(obj.__name)  # 私有:类外面不可以访问
    
    obj.func()  # 私有:类内面可以访问
    
    o1 = B('脸哥', 25)
    o1.func2()  # 私有:派生类不可以访问
    
    obj = A('二狗', 18)
    print(A.__dict__)
    print(obj._A__name)  # 这样可以访问,但是千万不要这样访问,这个是python犯懒了,c语言中私有成员在类外面是不能访问的。

     

  • 相关阅读:
    hdu 4864 Task
    hdu 1501 Zipper
    hdu 1428 漫步校园
    hdu 1505 City Game
    hdu 1337 The Drunk Jailer
    9-13记录
    python 读取unicode编码文件
    梯度出现Nan值的追踪
    Rstudio-server更改R版本
    stdout/stderr作用学习
  • 原文地址:https://www.cnblogs.com/wangkaiok/p/9987765.html
Copyright © 2011-2022 走看看