封装的意义:
第一层意义:创建类和对象时,分别创建两者的名称空间。只能通过类名加“.”或者obj.的方式访问里面的名字;
第二层意义:类中把某些属性和方法隐藏起来,或者定义为私有,只在类的内部使用,在类的外部无法访问,或者留下少量的接口(函数)供外部访问;
接着昨天的类的定义的火车站信息爬虫代码进行改进,实现封装,代码如下:

import requestsclass Station():def __init__ (self,code,cn,qp,jp):#加入两个下划线可将其设为隐藏属性self.__code=codeself.__cn=cnself.__qp=qpself.__jp=jpdef printinfo(self):print(self.__code,self.__cn,self.__qp,self.__jp)def test(self):#self代表类的实例,表示当前对象的地址  self.__class__ 则指向类print(self)print(self.__class__)def getcode(self,s):if s in [self.__cn,self.__qp,self.__jp]:return self.__codedef __str__(self):return "\t".join([self.__code, self.__cn, self.__qp, self.__jp])def getstations(address):while 1:find_address=input("%s站:"%address)address_list=list(filter(lambda i:i.getcode(find_address),stations))if len(address_list)==1:return address_list[0]elif len(address_list)>1:for i in range(len(address_list)):print(i+1,address_list[i])select_address = int(input("输入选择的序号:"))return address_list[select_address-1]else:print("查询地址不存在,重新输入!")url="https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9077"
html_txt=requests.get(url).text
#split后可以直接存入列表
infos=html_txt[:-2].split('@')[1:]
#print(infos)
stations=[]for info in infos:station_list = info.split('|')stations.append(Station(station_list[2],station_list[1],station_list[3],station_list[4]))for i in stations[:10]:i.printinfo()i.test()cf_station=getstations("出发")
dd_station=getstations("到达")
print(cf_station,dd_station)

在这里,我们对类中的属性前面加入两个下划线将其设为隐藏属性;
此时,便不可以使用obj.的属性进行访问;

同时,在写这段代码时学习到了列表生成器的使用,具体使用方法的代码如下:

address_list=list(filter(lambda i:i.getcode(find_address),stations))

实现的效果如下图:

enen~~ 就酱紫!

Python类的封装相关推荐

  1. python类的封装是什么意思_python类封装 python中将函数和变量封装成类的好处

    Python中的封装有什么作用?发现自己的错误,就是开悟:改正自己的错误,就是成就. 日常生活中可以看到很多的汽车,汽车包括车轮.发动机.车架等零部件.可以在车架上安装车轮,然后安装发动机,最后安装其 ...

  2. Python类的封装教程

    一.什么是封装 封装的本身意思其实就和闭包函数一样,就是把一个函数和变量全都包在一起,但其实这样的说法不是很具体,就是一种很片面的解释 二.为什么要封装 封装数据的主要原因是:保护隐私 封装方法的主要 ...

  3. python 类的封装

    一.什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其 含义是其他程序无法调用. 想要了解封装,就离不开"私有化& ...

  4. python类的封装是什么意思_python封装是什么意思

    python封装是什么意思 发布时间:2020-09-21 09:17:42 来源:亿速云 阅读:97 作者:Leah python封装是什么意思?相信很多没有经验的人对此束手无策,为此本文总结了问题 ...

  5. python类和封装之面向对象反恐精英实战

    反恐精英 -- 面向对象实战 1. 目标 理解 一个对象的属性 可以是 另外一个类创建的对象 强化对面向对象 封装 特性的理解 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性  ...

  6. python 类的封装、继承、重写方法

    class Person(object):def __init__(self, name, age):self.name = nameself.age = agedef info(self):prin ...

  7. 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态

    @Python大星 一.Python 类的封装.继承和多态 封装 继承 Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Pytho ...

  8. python之类的封装

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  9. Python类与对象技巧(1):字符串格式化、封装属性名、可管理的属性、调用父类方法

    1. 自定义字符串的格式化 _formats = {'ymd' : '{d.year}-{d.month}-{d.day}','mdy' : '{d.month}/{d.day}/{d.year}', ...

最新文章

  1. Ubuntu 强制删除文件夹(非空)
  2. python C++ 求逆矩阵库
  3. http协议组成(请求状态码)
  4. 学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...
  5. 微服务等于Spring Cloud?一文告诉你微服务到底是什么
  6. 动态规划在求解硬币问题中的应用(JAVA)--币制最大化、找零问题、硬币收集问题
  7. Android透明状态栏设置
  8. 腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
  9. 第09课 OpenGL 移动图像
  10. 终于会用c#中的delegate(委托)和event(事件)了
  11. 在线全网音乐搜索下载源码
  12. 推荐系统之用户标签,以及基于标签的算法
  13. New UWP Community Toolkit - DeveloperTools
  14. c++空指针的定义-0L
  15. OpenGL之glut、glfw、glew、glad等库之间的关系
  16. PLSQL Developer 登录报错 initialization error
  17. 镁光139 8510
  18. Java 回文数 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
  19. 全球与中国盲点检测(BSD)系统和自适应巡航控制(ACC)系统市场深度研究分析报告
  20. vue项目,svn提交代码时忽略node_modules文件夹提交。

热门文章

  1. SOA与EAI的比较
  2. 【转】STO跨公司转储流程
  3. PO增强,明细动抬头动
  4. 抖音用户规模达5.18亿,数据解读抖音支付背后逻辑?
  5. 足坛绝代双骄全面数据对比,梅西30岁以后不如C罗?
  6. 元气森林难撕“网红”标签
  7. 火出圈的1688,能扣响C2M的扳机吗?
  8. 如何解决java乱码_java如何解决乱码
  9. python集合和eval的使用
  10. python中字典的几种定义方式