zoukankan      html  css  js  c++  java
  • python面向对象的三大特征--封装

     1 #coding:utf-8
     2 __author__="tang"
     3 
     4 #第一个层面的封装:类就是麻袋,本身就是一种封装
     5 #第二个层面的封装:类中定义私有的,只在类的内部使用,外部无法访问
     6 
     7 # 任何以单下滑线开头的名字都是内部的,私有的,只在类的内部使用,外部无法访问 
     8 # 私有属性、方法——Python并没有真正的私有化支持,但可用下划线得到伪私有
     9 # 尽量避免定义以下划线开头的变量
    10 #    (1)_xxx      "单下划线 " 开始的成员变量叫做保护变量,意思是只有类对象(即类实例)和子类对象自己能访问到这些变量,需通过类提供的接口进行访问;不能用'from module import *'导入 可以永 from xx import _func
    11 #    (2)__xxx    类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通。)," 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
    12 #     (3)__xxx__ 系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__() 代表类的构造函数。
    13 # #
    14 
    15 class People:
    16     __star="earth"
    17     def __init__(self,id,name,age,salary):
    18         print('----->',self.__star)
    19         self.id=id
    20         self.name=name
    21         self._age=age
    22         self.salary=salary
    23 
    24 
    25     def get_id(self):
    26         print("我是私有方法呀,你的id",self.id)
    27 
    28     # 接口函数  访问函数
    29     def get_star(self):
    30         print(self.__star)
    31 
    32 #print(People.__dict__)
    33 
    34 p1=People("165661","alex",20,100000)
    35 print(p1._age)
    36 # print(p1._star)
    37 # print(p1._People__star)
    38 
    39 p1.get_star()
    如果我失败了,至少我尝试过,不会因为痛失机会而后悔
  • 相关阅读:
    3. 技术专题
    3. 技术专题
    1. 个人经验总结
    2. 阿里巴巴Java开发手册主题
    自动化构建工具演化、对比、总结
    2. 阿里巴巴Java开发手册主题
    (转)高并发高流量的大型网站架构设计(二)
    (转)高并发高流量的大型网站架构设计(一)
    (转)可伸缩性最佳实践:来自eBay的经验
    (转)Application, Session, Cookie, Viewstate, Cache对象用法和区别
  • 原文地址:https://www.cnblogs.com/tangcode/p/11375715.html
Copyright © 2011-2022 走看看