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. pymysql检查是否断开, 断开重连

    python mysql使用持久链接 python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能~ 思路: 1 python mysql 的cping 函数 ...

  2. Oracle11g安装与卸载教程

    1.1,前言: 电脑太卡,鄙人穷屌丝啊,没钱买新电脑,想想周六日还要耍游戏就给电脑重做了个系统,糟糕的是电脑上的各种环境,工具都需要重新装一边,包括oracle数据库- -,依稀记得昨天装了一上午的数 ...

  3. java 枚举和数值的相互转换

    枚举简介 enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中 在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而 ...

  4. js模块化编程之彻底弄懂CommonJS和AMD/CMD

    转自 http://www.cnblogs.com/chenguangliang/p/5856701.html

  5. swift 第五课 定义model类 和 导航栏隐藏返回标题

    1. 网络请求返回数据时候,把数据转化为model,但是有时候会返回空的字符串,所以加载了个长度的判断: class Model : NSObject{ var details_url:String? ...

  6. layui layer.open弹出框获取不了 input框的值

    layer.open({ title:'添加管理员', type: 1, content: $('.add_html').html(), btn:['添加', '取消'], btnAlign:'c', ...

  7. 跨域跨域跨域,从此say goodbye

    跨域这个问题每个开发者都会遇到,只是时间先后而已,你不搞清楚它他就像狗皮膏药一样粘着你,在你求职生涯中不停的遇到,然后你每次都要做这个功课,终于有一天这个名词已经让我忍无可忍了,下定决心必须搞定它,要 ...

  8. rqnoj PID95:多多看DVD(加强版)

    题目描述 多多进幼儿园了,今天报名了.只有今晚可以好好放松一下了(以后上了学后会很忙).她的叔叔决定给他买一些动画片DVD晚上看.可是爷爷规定他们只能在一定的时间段L看完.(因为叔叔还要搞NOIP不能 ...

  9. Nginx 小入门记录 之 初识Nginx和环境准备(一)

    前置知识准备: 如果还不知道服务器是干什么的,只是刚踏入程序员之路的,大家还是先学习基础,虽然以下文档很简单,但至少知道为什么要学: 一般服务器环境现在基本上都是放在Linux系统上了,如果对Linu ...

  10. linux 系统自签免费ssl证书和nginx配置

    首先执行如下命令生成一个key openssl genrsa -des3 -out ssl.key 1024 然后他会要求你输入这个key文件的密码.不推荐输入.因为以后要给nginx使用.每次rel ...