热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享Python学习之私有函数,私有变量及封装详解

通过学习私有函数与私有变量,可以更好的完善类的开发,从而丰满我们的场景与实现方案。什么是私有函数和私有变量私有函数与私有变量中的私有是什么意思?—>简单理解就是独

通过学习私有函数与私有变量,可以更好的完善 类的开发 ,从而丰满我们的场景与实现方案。

什么是私有函数和私有变量

私有函数与私有变量中的私有是什么意思? —> 简单理解就是独自拥有、不公开、不分享的意思。放到函数与变量中就是独自拥有的函数与独自拥有的变量,并且不公开。这样我们就理解了什么是私有函数与私有变量。

  • 无法被实例化后的对象调用的类中的函数与变量
  • 虽然无法被实例化后的对象调用,但是在 类的内部我们可以 调用私有函数与私有变量
  • 私有函数与私有变量的目的:只希望类内部的业务调用使用,不希望被实例化对象调用使用
  • 既然有私有函数与私有变量,其实能被实例化对象调用的函数与变量就是公有函数与公有变量,不过一般我们都称之为函数与变量。

私有函数与私有变量的定义方法

如何定义私有函数与私有变量:在 类变量 与 类函数 前添加 __ (2个下横线)即可定义私有函数与私有变量;变量或函数的后面无需添加,左右都有两个下横线,是 类的内置函数 的定义规范。

私有函数与私有变量示例如下:

接下来我们根据上面的示例代码做一下修改,更好的演示一下 私有函数与私有变量 方便加深理解

我们再试一下 通过 实例化对象 persion 调用 __eat 私有函数试试

那么事实真的是 实例化对象就没有办法调用 私有函数 了么?其实不是的,我们继续往下看

Python学习之私有函数,私有变量及封装详解

可以看到 实例化对象 persion 也有两个私有变量 _persion__eat 和 _persion__run ,尝试直接用实例化对象 persion 调用私有变量。

Python学习之私有函数,私有变量及封装详解

可以看到通过这种方式,我们的 实例化对象 persion 也成功的调用了 persioninfo 类 的私有函数;但是既然是 私有函数 ,那么目的就是不希望被实例化对象调用,所以我们还是按照编码规范来使用比较好。

附:私有变量(私有属性)的使用与私有函数一样,我们看下面的示例

python 中的封装

其实 python 中并没有 封装 这个功能,而封装只是针对 python 中某种业务场景的一种概念而已。

封装的概念 —> 将不对外的私有属性或方法通过可以对外使用的函数而使用(类中定义的私有函数、私有方法只能在类的内部使用,外部无法访问),这样做的主要原因是:保护隐私,明确的区分内与外。

封装的示例如下:

面向对象编程小练习

需求:

用类和对象实现银行账户的资金交易管理,包括存款、取款和打印交易详情,交易详情中包含每次交易的时间、存款或者取款的金额、每次交易后的余额。

脚本示例如下:

ps:这个脚本并不完善,但是太晚了不想改了。

以上就是python学习之私有函数,私有变量及封装详解的详细内容,更多关于python私有函数 变量 封装的资料请关注<编程笔记>其它相关文章!

需要了解更多python教程分享Python学习之私有函数,私有变量及封装详解,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • Python教程分享:使用plt.text给图中的点加标签,让Python画图更生动
    背景:今天在用matplotlib模块画各城市2019-ncov疫情确诊人数和节前流入人口数的图的时候遇到了要给图中的点加上标签示意,原本图长这个样子现在要给各散点标注是哪个哪个城 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 一json文件JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使 ... [详细]
  • Python3+Appium安装使用教程
    一、安装我们知道selenium是桌面浏览器自动化操作工具(WebBrowserAutomation)appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mo ... [详细]
  • python教程分享cvtcolor函数的作用(cvtcolor函数出现未处理异常)
    在这篇文章中,我们将看到如何使用python中的opencv模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。pipinstallopencv-pythonpipinsta ... [详细]
  • 写在前面最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试。没想到啊,这坑太深了。。。看了看相关介绍后选择了Scrapy框架,然后兴高采烈的 ... [详细]
  • python教程分享Python获取时光网电影数据的实例代码
    一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的”寿命&r ... [详细]
  • 浅谈Python3中打开文件的方式(With open)
    浅谈Python3中打开文件的方式(With open)-目录0.背景知识1.常规方式:读取文件-----open()2.推荐方式:读取文件-----WithOpen1).读取方式 ... [详细]
  • Python3怎么获取文件属性
    这篇文章给大家分享的是有关Python3怎么获取文件属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。os.stat(path ... [详细]
  • python教程分享python单例模式之selenium driver实现单例
    一、使用装饰器实现单例二、web自动化driver实现单例模式2.1编写单例模式的装饰器2.2driver使用装饰器,实现单例模式2.3获取driver的实例,就是单例了三、在自动 ... [详细]
  • 环境准备—之—linux下安装python3和pip3
    转自上海悠悠https:www.cnblogs.comyoyoketangp10195102.html前言centos7自带有python,但是却是python2版本的 ... [详细]
  • python教程分享POC漏洞批量验证程序Python脚本编写
    编写目的批量验证poc,python代码练习。需求分析1、poc尽可能简单。2、多线程。3、联动fofa获取目标。4、随机请求头.实现过程脚本分为三个模块,获取poc及目标、多线程 ... [详细]
author-avatar
飞扬的青春2046是我
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有