一,复习
1. xml模块
解析xml格式的文档
可扩展的标记语言
<tag name="123" >text</tag>
<tag1>
<tag2>
</tag2>
</tag1>
<tag/>
1. tree = ElementTree.parser("文件路径")
root = tree.getroot()
root.iter/find/findall
直接遍历某标签 取出所有子级
element.text = ""
element.tag = "xxx"
element.set("k","v")
要删除需要先找父级
父级.remove(子标签对象)
父级.append(子标签)
tree.write("路径")
2.面向对象的基本概念
是一种编程思想,
优点:扩展性高,复用性强,可维护性好
缺点:编程复杂度提高了,需要先设计,结果无法准确预知
使用场景:对扩展性要求高的程序
面向过程:
优点:复杂问题简单化,流程化
缺点:扩展性极低,牵一发动全身,维护性相比OOP低
使用场景:对扩展性要求低的程序
将程序员从一个具体的操作者转变为指挥者
3.类与对象的关系
对象是 具备某些特征和行为的结合体,是具体存在的某个事物
类 某些具备相同特征和相同行为的集合体,是一种抽象概念
创建类的语法
class 大驼峰命名:
属性用变量标识 (数据属性)
名称=值
行为用函数表示 (函数属性/方法)
def 函数名称
创建对象
类名加括号
Person()
4.属性的访问顺序
优先访问对象自己的 如果没有 再访问类中的
#今日内容
__init__函数 *****
绑定方法和非绑定方法 *****
## 类属性与对象属性
类中应该仅存储所有对象共有的内容
如所有人的国籍相同那就放到类中
对象中存储每个对象独有的内容
如每个人的名字都不同
## __init__方法的作用
init 是初始化的缩写 用于为对象的属性设置初始值
特点:
```
# 执行时机:当实例化产生对象时会自动执行该函数
# 会自动传入需要初始化的对象
# 初始化必须包含至少一个参数 用于表示对象本身
# 该函数不允许有返回值 必须为None
```
# __init__方法的使用
class Dog:
# 执行时机:当实例化产生对象时会自动执行该函数
# 会自动传入需要初始化的对象
# 初始化必须包含至少一个参数 用于表示对象本身
# 该函数不允许有返回值
def __init__(self,age,name,**kwargs):
# print("init run")
# print(self)
self.age = age
self.name = name
# d = Dog() # === Dog.__init__(d)
# # print(Dog.__init__)
# # print(d)
# # print(d.age)
# Dog()
d1 = Dog(1,"大花")
d2 = Dog(2,"校花")
print(d1.name)
print(d2.name)
## 绑定方法
绑定即两个东西绑在一起
方法就是函数
那就是说绑定方法 == 绑定函数
默认情况下 在类中定义的方法 都是绑定方法
绑定方法 是把函数和对象绑定到一起
为什么要绑定:
每个应用程序其实本质上都是在处理数据,那就必须明确 要处理的数据在哪里,如何处理
绑定方法的好处在于,将需要处理的数据 以及处理数据的方法绑定在一起,这样一来 当你获得一个对象就同时获得 数据以及 相应的处理方法 ,简单的调用即可
### 绑定方法与普通函数的区别
当使用类调用时,就是一个普通函数 有几个参数就得传几个参数
当用对象来调用时,是一个绑定方法了,会自动将对象作为第一个参数传入
一个类中可以有属性和方法
方法分为两种
1.绑定方法
1.1对象绑定方法
在使用对象调用时会自动传入对象本身
1.2类绑定方法
@claSSMethod
在使用对象调用时会自动传入类本身
在使用类来调用时也会自动传入类本身
单例模式中就会经常使用@classmethod
到底绑定给谁?
当你的方法执行过程中需要使用到对象中数据时就绑定给对象
当你的方法执行过程中需要使用到类中数据时就绑定给类
2.非绑定方法
即不需要对象中的数据 也不需要类中的数据 那就定义为非绑定方法,就是普通函数
@staticmethod
oop知识点:
1.属性应该放在类中还是对象中
2.绑定方法 == 绑定函数
对象绑定方法
对象调用时 自动传入对象本身
类调用时不会自动传参 有几个就需要传几个
类绑定方法
@classmethod
无论是对象还是类调用 都会自动传入类本身
非绑定方法(静态方法)
@staticmethod
谁调用都不会自动传参
## 在使用面向对象编程时 首先要想的时 需要什么对象,这些对象具备什么样的属性和什么样的行为,根据属性和行为创建对应的类