python中封装是什么意思_Python中数据封装是什么?

封装——“隐藏一切可以隐藏的实现细节,只向外界暴露(提供)简单的编程接口”。

在上节的 Student 类中,每个实例就拥有各自的 name 和 age 这些数据。我们可以通过函数来访问这些数据,比如打印一个学生的年龄:

>>> def print_age(std):

... print('%s: %s' % (std.name, std.age))

...>>> print_age(stu1)

小白菜: 21

但是,既然Student实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了。这些封装数据的函数是和

Student类本身是关联起来的,我们称之为类的方法:

class Student(object): def __init__(self, name, age):

self.name = name

self.age = age def print_age(self):

print('%s: %s' % (self.name, self.age))

这样一来,我们从外部看Student类,就只需要知道,创建实例需要给出name和age,而如何打印,都是在Student类的内部定义的,这些数据和逻辑被“封装”起来了,调用很容易,但却不用知道内部实现的细节。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jieba库的使用

jieba库的使用: jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式,下面是三种模式的特点。 精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文…

Go语言实现HashSet

set.go // set project set.go package settype Set interface {Add(e interface{}) boolRemove(e interface{})Clear()Contains(e interface{}) boolLen() intSame(other Set) boolElements() []interface{}String() string }// 将集合other添加到集合one中 func AddSet(one S…

c#控件弹幕效果_C# Form 实现桌面弹幕

使用C# Form 简单的实现了弹幕效果1.创建一个Form 设置2.添加一个计时器3. 代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Text;using System.Linq;using System.Text;using S…

Makefile中怎么使用Shell if判断

/********************************************************************** Makefile中怎么使用Shell if判断* 说明:* 譬如可能会在Makfile中需要判断文件、文件夹的存在,使用shell语法* 输出一些信息,等等。** …

我如何使用React和Typescript在freeCodeCamp中构建天气应用

by Kelvin Mai通过凯文麦 我如何使用React和Typescript在freeCodeCamp中构建天气应用 (How I built the weather app in freeCodeCamp using React and Typescript) So I finally decided to come back to freeCodeCamp and try to finish out my Front End Development Certi…

mysql结果集相减_MySQL_(Java)使用JDBC向数据库发起查询请求

课程相关链接:JDBC编程和MySQL数据库课程源代码在文章末尾~Java Database Connectivity简单来说就是使用Java里面提供的一些类和方法,利用程序链接数据库,进行增删改查操作。这个过程就叫做JDBC编程接下来我们便分五步通过JDBC对MySQL中的数据…

在双系统(Windows与Ubuntu)下删除Ubuntu启动项

问题概述:因为在自己学习Linux的时候,按照网上的教程错误的删除了Ubuntu的一个内核驱动,导致Ubuntu不能启动。我想到的办法是重新安装系统,重装系统的第一步便是将Ubuntu从电脑中卸载。该笔记是有关如何删除Ubuntu启动项的。 使用…

iangularjs 模板_2018-web前端的自我介绍-优秀word范文 (5页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!本文为word格式,下载后可方便编辑和修改!web前端的自我介绍篇一:个人总结的web前端面试题1、自我介绍…

Teradata QueryGrid整合最佳分析技术 拓展客户选择空间

ZDNET至顶网CIO与应用频道 05月11日 北京消息: 为持续帮助企业克服数据散布在不同分析系统的困难,全球领先的大数据分析和营销应用服务供应商Teradata天睿公司宣布对Teradata QueryGrid 进行重要技术升级。此次升级新增并强化六项QueryGrid技术&#xf…

神舟笔记本bios_海尔雷神(蓝天)神舟战神游戏本风扇狂转掉电大写灯狂闪维修实例...

昨天收到一台网友寄过来的海尔雷神游戏本。说到这个游戏本品牌,其实有几个品牌的笔记本,它们的主板和模具是一模一样的,也就是我们看到的品牌log不一样而已。比如神舟的战神 ,机械师,机械革命,麦本本等等。…

Oracle 学习----:查看当前时间与Sqlserver语句不一样了

oracle:select sysdate from dual sqlserver: select getdate() ---------------------试试这个---------------------------------------------------------- insert into OracleTab values(sysdate) insert into SqlserverTab values(getdate())转载于:https://www.cnblogs…

react发送和接收请求_React行为编程简介:请求,等待和阻止

react发送和接收请求by Luca Matteis卢卡马蒂斯(Luca Matteis) React行为编程简介:请求,等待和阻止 (An intro to Behavioral Programming with React: request, wait, and block) Behavioral Programming (BP) is a paradigm coined in the 2012 artic…

leetcode96. 不同的二叉搜索树(动态规划)

给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 解题思路 *数组含义:dp[i] i个节点的不同组成结构 状态转移:任取节点为根节点,遍历左右子树可能出现的个数,dp[i]dp[left]dp[right] 初始化&#xff1a…

“康园圈--互联网+校园平台“项目之成果展示及项目总结

一、总体效果(ipad端截图) 网站前台页面网站后台管理台页面二、前台访问链接(用pc访问效果最佳):http://www.liangzhilin.cn:9100/kangyuanquan/ (为保证数据安全,后台管理链接不对外公开&#…

ajax jq 图片上传请求头_Jquery ajaxsubmit上传图片实现代码

这是数月前的事情了,场景是这样的: 在进行图片上传的时,我发现开发人员使用的上传图片方式是Iframe 传统的 http post 来处理的。而且未建立统一上传函数。于是将代码改造了。心想来个ajax异步上传图片吧,这技术应该很老套了。于…

这个免费的交互式课程在一小时内学习JavaScript

JavaScript is the most popular programming language on the web. You can use it to create websites, servers, games and even native apps. So no wonder it’s such a valuable skill in today’s job market.JavaScript是网络上最流行的编程语言。 您可以使用它来创建网…

java中二进制怎么说_面试:说说Java中的 volatile 关键词?

volatile 这个关键字可能很多朋友都听说过,或许也都用过。在 Java 5 之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在 Java 5之后,volatile 关键字才得以重获生机。volatile 关键字虽然从字面上理…

类的详解

面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用。类是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中)。对象,根据模板创建的实例(即对象)&a…

leetcode279. 完全平方数(动态规划)

给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n 12 输出: 3 解释: 12 4 4 4. 解题思路 数组含义:dp[i]数字i对应组成和的完全平方…

什么情况不能办理房产抵押贷款 房产抵押贷能贷多少?

所谓房产抵押贷款是指以自己或亲友的房产作为抵押物向贷款机构申请贷款,款项可用于企业经营、买房、买车、装修及其他用途的融资方式。但是有些情况是规定不能申请房产抵押贷款的,而且贷款的数额是有限的,不是想贷多少就多少。那么&#xff0…