XML模块与类的定义
xml模块
xml介绍:
--XML 全称 可扩展标记语言
--<tag></tag> 双标签 标签中间可以加入文本信息
--<tag/>单标签 没有文本 ,一般用于设计文档结构,例如换行<tr/>
<tag style="color:red" age="18">123sddds</tag>
--一个完整的标签有三部分组成
--tag -->标签名称 tag
--123sddds -->文本内容 text
--age = ''18'' -->是标签的属性
xml的其他规范
--1、有开始就必须有结束
--2、所有的属性值必须包含在双引号里
--3、只能由一个根标签(最外层只能有一个标签)
--4、开始标签和结束标签的顺序是相反的,最先打开谁,就最后关闭谁
--文档开头可以写上那个文档声明,告诉浏览器该怎么解析该文件(可写可不写)
与json的区别
--1、xml 是一种可扩展的标记语言 (内容形式比json灵活)
--2、可以高度自定义文档的结构、数据类型、标签含义等等
json更加适用于前后台数据交换。优点 -->轻量级、跨平台、语法简单
xml更多用来作为配置文件 当然python不常用,python有更为简单的configparser模块来解析配置文件
xml的使用方法
#1、导入模块,可以起别名
import xml.etree.ElementTree as ET
#2、获得元素树
tree = ET.parse('文件名') -->括号里文件在当前目录下直接文件名,不在的话就用绝对路径
#3、获得根标签
root = tree.getroot()
#4、查找标签下的子标签-->按标签名称查找
--1、find() 遍历所有的子标签,返回第一个查找到的标签,没有查找到就返回None
--2、findall() 遍历所有的子标签,返回第所有查找到的标签,没有查找到返回一个空列表
--3、iter() 查找根标签下的所有标签,返回所有查到的标签,
如果是空括号,就会把所有的标签列出来
--4、直接遍历某个标签获得的时这个标签下的所有子标签
--5、root.tag 获取的是标签的标签名
--6、root.text 获取的是标签的文本内容
--7、root.attrib 获取的是标签的属性,返回的是一个字典
#5、增加子标签
root.append(标签对象)
--new = ET.Element('标签名') -->创建一个标签对象
--new.txt = 'ss' -->为标签添加文本信息,如果不添加,标签就会以单标签的形式被存进去
--new.set('ddd','fff') -->为标签添加属性
最后将标签对象添加在root标签下
#6、删除子标签
root.remove(标签对象) -->注意:括号里是标签对象而不是标签名称
需要注意的是标签它本身没有办法删除自己,所以只能找到它的父级标签
通过它父级标签的remove()来把他删除
#7、改标签对象里面的内容
--root.tag = '标签名称' -->不常用,标签名称基本不用改
--root.text = ’文本信息’ -->修改标签的内容信息
--root.set('name','gdk') -->修改标签的属性,属性名存在就修改,不存在新添加
面向对象
面向过程
面向过程的程序设计:核心是过程,过程指的是分步骤解决问题,是一种机械的思维方式
优点:复杂的问题流程化、进而简单化
可以提前预知程序运行结果
缺点:一套流水线或流程解决一个问题、一旦确定好流水之后,再想拓展新功能就比较麻烦
经常是牵一发而动全身,维护性差
应用场景:一旦完成基本很少改变的场景,例如电脑上的计算器功能或者是Linux的内核等等
面向对象
面向对象编程 -->Object Oriented Programming,简称OOP,是一种程序设计思想
它是将对象作为程序的基本单元
将数据和处理数据的程序封装到对象中,让对象完成特定的功能
以提高软件的复用性、灵活性和拓展性为主要目的
优点:程序员的角色发生了改变,操作者编程了指挥者,不再需要关心每个功能具体的执行细节,从而可以更多的专注逻辑
大大提高了程序的拓展性,一个对象发生改变,对其他对象没有影响,对象之间互相独立
提高了程序的灵活性、复用性强
缺点:
需要提前设计程序,简单的问题会变得复杂
无法提前预知程序运行结果
类和对象
对象:特征与技能的结合体
类:就是种类,是一系列对象中相似特征和技能的结合体
定义类
在python中,通过class关键字来定义类
class Student: -->class后面跟着的Student就是类的名字,类名用大驼峰的命名规范来命名
gender = 'male' -->特征在类中基本用常量来表示
def sleep(self): -->技能在类中基本上用函数表示
pass
##类在定义时,类的内部代码就会运行一遍,且仅在第一次加载的时候运行一遍,后续调用不会执行
##第一次执行的时候会产生一个名称空间
创建对象 -->会把类的名称空间拿过来
创建对象也称之为实例化,定义好Student类后,就可以根据Student类创建出Student的实例
创建实例通过类名加上()实现
stu1 = Student() -->stu1就是对象,每个对象的内存都是独立的
对象的属性操作
对象是特征与技能的结合体
通过.语法可以为对象添加特征stu1.name = 'dog'、同样也可以通过.语法来获取对象的特征print(stu1.name) ->dog
每个对象都会存储自己所在类的地址,可以使用__class__来访问
print(stu1.__class__) type 底层用的就是__class__方法
查看名称空间的内容通过__dict__方法
#给stu1添加的属性是stu1独有的,在访问时优先访问自己名称空间,如果找不到再去访问类的名称空间
XML模块与类的定义的更多相关文章
- XML模块,面向对象思想与类的定义
今日内容 XML模块,面向对象思想,类的定义 1.XML模块 xml是一种可扩展的标记语言格式如下 使用 <> 作为标签格式 <tag style: '' color:read '' ...
- python16_day06【类、RE模块、subprocess模块、xml模块、shelve模块】
一.shelve模块 import shelve # 基于pickle模块, d = shelve.open('shelve_test') class Test(object): def __init ...
- python------模块定义、导入、优化 ------->xml模块
1. xml模块 引用参考原文链接:https://www.cnblogs.com/python-gm/p/8032465.html 谢谢 xml是实现不同语言或程序之间进行数据交换的协议, ...
- oop、configparser、xml模块
本节大纲:一:在python中,有两种编程思想.1:函数式编程.2:oop.无论是函数式编程还是oop都是相辅相成.并不是说oop比函数式编程就好.各有各的优缺点.在其他语言中java等只能以面向对象 ...
- [python标准库]XML模块
1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...
- Python xml 模块
Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...
- day36-常见内置模块五(collections、xml模块)
一.collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counter ...
- Python之路(第十六篇)xml模块、datetime模块
一.xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单, xml比较早,早期许多软件都是用xml,至今很多传统公司如金融行业的很多系统的接口还主要 ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
随机推荐
- leetcode 96. Unique Binary Search Trees 、95. Unique Binary Search Trees II 、241. Different Ways to Add Parentheses
96. Unique Binary Search Trees https://www.cnblogs.com/grandyang/p/4299608.html 3由dp[1]*dp[1].dp[0]* ...
- SQL-W3School-高级:SQL UNIQUE 约束
ylbtech-SQL-W3School-高级:SQL UNIQUE 约束 1.返回顶部 1. SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIM ...
- 如何用CSS3来实现卡片的翻转特效
CSS3实现翻转(Flip)效果 动画效果 效果分析 当鼠标滑过包含块时,元素整体翻转180度,以实现“正”“反”面的切换. HTML分析 分析:.container,.flip为了实现动画效果做准备 ...
- C11中的Unicode
在C11(ISO/IEC 9899:2011)标准中引入了对UTF8.UTF16以及UTF32字符编码的支持. 其中,UTF8字符直接通过char来定义,字面量前缀使用u8.比如: char c = ...
- Django - ORM - 事务, 乐观锁, 悲观锁
事务 概念 Transaction 事务:一个最小的不可再分的工作单元:通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(inser ...
- 16Flutter中的路由 基本路由 基本路由跳转传值(上)
/* Flutter中的普通路由.普通路由传值.命名路由.命名路由传值 Flutter中的路由通俗的讲就是页面跳转.在Flutter中通过Navigator组件管理路由导航. 并提供了管理堆栈的方法. ...
- 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_8.RabbitMQ研究-工作模式-发布订阅模式-生产者
Publish/subscribe:发布订阅模式 发布订阅模式: 1.每个消费者监听自己的队列. 2.生产者将消息发给broker,由交换机将消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将 ...
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_16-页面静态化-模板管理-模板制作
这是轮播图的原始文件 运行门户需要把 nginx启动起来 单独运行轮播图.把里面的css的引用都加上网址的url 这就是单独访问到的轮播图的效果 轮播图模板的地址: 阶段5 3.微服务项目[学成在线] ...
- Jenkins创建镜像后无法推送到harbor的问题
https://blog.csdn.net/mydeman/article/details/79042848 1.先切换到root账号,用root登录harbor,就可以push $ sudo pas ...
- js时间戳转为日期函数
js时间戳转为日期函数 function add0(m){ return m<10?'0'+m:m; } //timestamp参数示例:1501234567 function format(t ...