python基础之Day23
1.封装
什么是?
封:明确地把属性隐藏起来 ,对外隐藏,对内开放
申请名称空间,往里面装入一系列名字 /属性(类比 类 和对象 只是装的概念)
为什么要用?
__init__往对象里丢属性
封装数据属性:
定义属性的目的是给类的外部使用者用的
隐藏属性目的是为了不让用户直接使用,如果想用的话,需要类内部开辟一个接口,实现间接访问
精髓在于我们可以在接口上附加任意逻辑,从而严格控制使用者对属性的操作
封装函数属性:
定义属性的目的是给类的外部使用者用的
隐藏属性目的是为了不让用户直接使用,如果想用的话,需要类内部开辟一个接口,实现间接访问
精髓在于隔离复杂度
如何?
在要隐藏的属性之前加__开头
隐藏在类的内部是可见的,对外不对内
隐藏只是语法上的变形,只在类定义阶段发生一次,类体内代码只在定义阶段发生一次
2.特性
3.绑定方法
绑定给谁,就应该由谁来调用,把谁当作第一个参数传入
精髓在于自动传值
绑定方法分类:1.绑定给对象 类内部定义的函数 没有被任何装饰器修饰的 默认绑定给对象
2.绑定给类 类内部定义的函数被@classmethod 装饰 将类当作第一个参数传入
绑定给类的对象也可以用,但自动传入的仍是类
类绑定给对象:如果函数体代码需要用到外部传入的类,则应该将该函数定义成绑定给类的方法
4.非绑定方法
既不与类也不与对象绑定,无自动绑定的效果,就是普通的函数,类与对象都可以调用,但是无论谁调用都没有自动传值的效果
@staticmethod
python基础之Day23的更多相关文章
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
- Python之路3【第一篇】Python基础
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
- 进击的Python【第三章】:Python基础(三)
Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- python基础之day1
Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...
- python基础之文件读写
python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...
随机推荐
- OO第一单元(求导)单元总结
OO第一单元(求导)单元总结 这是我们oo课程的第一个单元,也是意在让我们接触了解掌握oo思想的一个单元,这个单元的作业以求导为主题,从一开始的加减多项式求导再到最后的嵌套多项式求导,难度逐渐提高,编 ...
- Python第4天
主要内容: 数字(int) 字符串(replace/find/join/strip/startswith/split/upper/lower/format) 列表 append/extend/inse ...
- 使用 nodeJs 开发微信公众号(设置自动回复消息)
微信向第三方服务器发送请求时会降 signature .timestamp. nonce . openid(用户标识),发送内容会以 xml 的形式附加在请求中 回复消息前提我们得拿到用户id , 用 ...
- 搭建rancher节点
1.centos 7.5 64 2.安装docker systemctl restart docker.service 注意:重启后才有 /etc/docker/文件夹 切换到这文件夹下再增加对应的d ...
- 49.字符串转int
面360的时候这道题目加了一个要求就是要求小数输出整数,故增加一个关于小数点的判断 要注意转义字符:"."和"|"都是转义字符,必须得加"\\&quo ...
- js实现reqire中的amd,cmd功能
js实现reqire中的amd,cmd功能 ,大概实现了 路径和模块 引入等重要功能. 本帖属于原创,转载请出名出处. <!DOCTYPE html PUBLIC "-//W3C//D ...
- 微信小程序页面导航功能
页面导航功能无论是在app和web中都是一个极其常见的功能,如首字母导航,tabs导航等等.但是由于微信小程序无法都dom节点进行操作,所以怎么才能在小程序中快速的导航到用户的想要到达的地方呢. 那么 ...
- jsp页面选择文件上传,获取不到绝对路径问题
选择"D:\\temp\file\test.txt"文件,alert(filename)却是"C:\\fakepath\test.txt" 出现D:\\temp ...
- Delphi中Chrome Chromium、Cef3学习笔记(五)
原文 http://blog.csdn.net/xtfnpgy/article/details/48489489 一.模拟移动鼠标 // SetCursorPos(StrToInt(Edit ...
- Iview Modal 点击确定就关闭,我想禁止关闭该怎么办呢?
网上各种loading,不推荐.用下面的方法直接就解决了 <div slot="footer"> <Button type="text" si ...