zoukankan      html  css  js  c++  java
  • 【python】面向对象初识之封装

    # 广义的封装: 实例化一个对象,给对象空间封装一些属性.

    # 狭义的封装: 私有化,只能在类的内部访问

    # 私有成员:私有静态字段,私有方法,私有对象属性

    #在内存中存储:_类名__名字

    #只能在本类中访问,类的外部和派生类均不可使用,原因:调用时传的是外部的类名,故找不到

    1、私有静态字段:

    class B:

    __money = 100000

    class A(B):

        name = 'alex'

    __age = 1000

        def func(self):

            print(self.__age) # 对于私有静态字段,类的内部可以访问.

            print(A.__age)    # 对于私有静态字段,类的内部可以访问.

            print('func....')

        def func1(self):

            print(self.__money)

            print(A.__money)

    a1 = A()

    print(a1.name)

    print(A.name)

    Print(a1.__dict__) #可以查看到私有静态变量

    print(a1.__age)  # 实例化对象不能访问私有静态字段

    print(A.__age)  # 类名不能访问私有静态字段

    # 对于私有静态字段,类的外部不能访问.

    a1.func()  #对于私有静态字段,类的内部可以访问.

    a1.func1() #对于私有静态字段来说,只能在本类中内部访问,类的外部,派生类均不可访问.

    # python中其实也可以访问,但是工作中千万不要用.

    print(A._A__age)

    print(A.__dict__)

    # 2、私有方法

    class B:

        __money = 100000

        def __f1(self):

            print('B')

    class A(B):

    name = 'alex'

        def __func(self) 

            print('func....')

        def func1(self):

            # self.__func()   # 类的内部可以访问

            self.__f1()

    a1 = A()

    a1.__func()  # 类外部不能访问

    #a1.func1()  # 类的内部可以访问

    a1.func1()  # 类的派生类也不能访问

  • 相关阅读:
    14.使用nodejs将规定格式的txt转化为json数据
    13.resize妙用(书上看到的)
    12.写了一个怪怪的边框
    11.一起来抄一个小小的提示菜单
    UI02-textfiled.按钮 uibutton
    UI01-UIview UIlable的属性
    OC9-内存管理
    OC8-属性 KVC是键值编码
    OC7-‍ 类目,延展 协议代理。
    OC6-block-函数指针
  • 原文地址:https://www.cnblogs.com/xlzhangq/p/13211285.html
Copyright © 2011-2022 走看看