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模块与类的定义的更多相关文章

  1. XML模块,面向对象思想与类的定义

    今日内容 XML模块,面向对象思想,类的定义 1.XML模块 xml是一种可扩展的标记语言格式如下 使用 <> 作为标签格式 <tag style: '' color:read '' ...

  2. python16_day06【类、RE模块、subprocess模块、xml模块、shelve模块】

    一.shelve模块 import shelve # 基于pickle模块, d = shelve.open('shelve_test') class Test(object): def __init ...

  3. python------模块定义、导入、优化 ------->xml模块

    1. xml模块 引用参考原文链接:https://www.cnblogs.com/python-gm/p/8032465.html      谢谢 xml是实现不同语言或程序之间进行数据交换的协议, ...

  4. oop、configparser、xml模块

    本节大纲:一:在python中,有两种编程思想.1:函数式编程.2:oop.无论是函数式编程还是oop都是相辅相成.并不是说oop比函数式编程就好.各有各的优缺点.在其他语言中java等只能以面向对象 ...

  5. [python标准库]XML模块

    1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...

  6. Python xml 模块

    Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...

  7. day36-常见内置模块五(collections、xml模块)

    一.collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counter ...

  8. Python之路(第十六篇)xml模块、datetime模块

    一.xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单, xml比较早,早期许多软件都是用xml,至今很多传统公司如金融行业的很多系统的接口还主要 ...

  9. 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 ...

随机推荐

  1. 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]* ...

  2. SQL-W3School-高级:SQL UNIQUE 约束

    ylbtech-SQL-W3School-高级:SQL UNIQUE 约束 1.返回顶部 1. SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIM ...

  3. 如何用CSS3来实现卡片的翻转特效

    CSS3实现翻转(Flip)效果 动画效果 效果分析 当鼠标滑过包含块时,元素整体翻转180度,以实现“正”“反”面的切换. HTML分析 分析:.container,.flip为了实现动画效果做准备 ...

  4. C11中的Unicode

    在C11(ISO/IEC 9899:2011)标准中引入了对UTF8.UTF16以及UTF32字符编码的支持. 其中,UTF8字符直接通过char来定义,字面量前缀使用u8.比如: char c = ...

  5. Django - ORM - 事务, 乐观锁, 悲观锁

    事务 概念 Transaction 事务:一个最小的不可再分的工作单元:通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(inser ...

  6. 16Flutter中的路由 基本路由 基本路由跳转传值(上)

    /* Flutter中的普通路由.普通路由传值.命名路由.命名路由传值 Flutter中的路由通俗的讲就是页面跳转.在Flutter中通过Navigator组件管理路由导航. 并提供了管理堆栈的方法. ...

  7. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_8.RabbitMQ研究-工作模式-发布订阅模式-生产者

    Publish/subscribe:发布订阅模式 发布订阅模式: 1.每个消费者监听自己的队列. 2.生产者将消息发给broker,由交换机将消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将 ...

  8. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_16-页面静态化-模板管理-模板制作

    这是轮播图的原始文件 运行门户需要把 nginx启动起来 单独运行轮播图.把里面的css的引用都加上网址的url 这就是单独访问到的轮播图的效果 轮播图模板的地址: 阶段5 3.微服务项目[学成在线] ...

  9. Jenkins创建镜像后无法推送到harbor的问题

    https://blog.csdn.net/mydeman/article/details/79042848 1.先切换到root账号,用root登录harbor,就可以push $ sudo pas ...

  10. js时间戳转为日期函数

    js时间戳转为日期函数 function add0(m){ return m<10?'0'+m:m; } //timestamp参数示例:1501234567 function format(t ...