zoukankan      html  css  js  c++  java
  • 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独有的,在访问时优先访问自己名称空间,如果找不到再去访问类的名称空间

  • 相关阅读:
    vs2013中,自定义mvc 添加视图脚手架
    照猫画虎owin oauth for qq and sina
    Microsoft.AspNet.Identity 的简单使用
    autofac使用Common Serivce Locator跟随wcf,mvc,web api的实例控制
    在iis搭建nuget server时遇到405 method not allow
    mongodb int型id 自增
    使用T4Scaffolding 创建自己的代码生成
    vs2013 sn key
    spring mvc与mybatis收集到博客
    spring的依赖注入DI(IOC)
  • 原文地址:https://www.cnblogs.com/hesujian/p/10872351.html
Copyright © 2011-2022 走看看