1.封装

什么是?

封:明确地把属性隐藏起来 ,对外隐藏,对内开放

申请名称空间,往里面装入一系列名字 /属性(类比 类 和对象   只是装的概念)

为什么要用?

__init__往对象里丢属性

封装数据属性:

定义属性的目的是给类的外部使用者用的

隐藏属性目的是为了不让用户直接使用,如果想用的话,需要类内部开辟一个接口,实现间接访问

精髓在于我们可以在接口上附加任意逻辑,从而严格控制使用者对属性的操作

封装函数属性:

定义属性的目的是给类的外部使用者用的

隐藏属性目的是为了不让用户直接使用,如果想用的话,需要类内部开辟一个接口,实现间接访问

精髓在于隔离复杂度

如何?

在要隐藏的属性之前加__开头

隐藏在类的内部是可见的,对外不对内

隐藏只是语法上的变形,只在类定义阶段发生一次,类体内代码只在定义阶段发生一次

2.特性

3.绑定方法

绑定给谁,就应该由谁来调用,把谁当作第一个参数传入

精髓在于自动传值

绑定方法分类:1.绑定给对象  类内部定义的函数 没有被任何装饰器修饰的 默认绑定给对象

2.绑定给类    类内部定义的函数被@classmethod 装饰 将类当作第一个参数传入

绑定给类的对象也可以用,但自动传入的仍是类

类绑定给对象:如果函数体代码需要用到外部传入的类,则应该将该函数定义成绑定给类的方法

4.非绑定方法

既不与类也不与对象绑定,无自动绑定的效果,就是普通的函数,类与对象都可以调用,但是无论谁调用都没有自动传值的效果

@staticmethod

python基础之Day23的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

随机推荐

  1. 【Python】爬虫

    参考:http://www.cnblogs.com/fnng/p/3576154.html import urllib,re page = urllib.urlopen('http://trend.b ...

  2. Java2E中的路径问题

    本节主要介绍: 1.request.getContextPath()-----项目的发布的根路径 2.request.getRealPath('t')----t目录在当前磁盘中的物理位置,包括盘符,文 ...

  3. CentOS使用nginx部署https服务

    nginx安装参考:https://www.cnblogs.com/taiyonghai/p/6728707.html 自签证书生成参考:https://gmd20.github.io/blog/op ...

  4. Docker 开启 remoter api

    debian 环境: vi /lib/systemd/system/dcoker.service 修改: ExecStart=/usr/bin/dockerd -H fd://为 ExecStart= ...

  5. Java Native调用C方法

    1.通过JNI生成C调用的头文件:Java源码: import java.io.File; public class Test { static { System.load("D:" ...

  6. Log4j日志框架学习零到壹(一)

    日志是系统开发过程中用于排查问题重要的记录.通常使用日志来记录系统运行的行为,什么时间点发生了什么 事情.Java中常用的莫过于Log4j框架了.下面主要围绕Log4j的基础知识.Log4j的使用方式 ...

  7. 深入理解Java虚拟机读书笔记1----Java内存区域与HotSpot虚拟机对象

    一 Java内存区域与HotSpot虚拟机对象 1 Java技术体系.JDK.JRE?     Java技术体系包括:         · Java程序设计语言:         · 各种硬件平台上的 ...

  8. linux挂载硬盘分区

    [转]https://www.jb51.net/article/138204.htm 基本步骤:分区——格式化——挂载——写入文件 1.使用fdisk    -l命令查看添加的硬盘名称,可以看到sdb ...

  9. 用java输入分数,得出分数等级

    import java.util.Scanner;public class F {  public static void main(String[] args) {  // TODO 自动生成的方法 ...

  10. web跨域问题(No 'Access-Control-Allow-Origin'..)

    1. 问题 angular开发中连接java服务时出现跨域问题(No 'Access-Control-Allow-Origin'..). 如下图 解决方法 2,原因分析 这个与安全机制有关,默认情况下 ...