1、python 函数式+面向对象


from xml.etree import ElementTree as ET

tree = ET.parse(‘xo.xml‘)root = tree.getroot()

for child in root:    print(child.tag,child.attrib)    for gradechild in child:        print(gradechild.tag, gradechild.text)
 打开文件,读取XML内容from xml.etree import ElementTree as ETstr_xml = open(‘xo.xml‘, ‘r‘).read()

# 将字符串解析成xml特殊对象,root代指xml文件的根节点root = ET.XML(str_xml)

############ 操作 ############

# 顶层标签print(root.tag)

# 循环所有的year节点for node in root.iter(‘year‘):    # 将year节点中的内容自增一    new_year = int(node.text) + 1    node.text = str(new_year)

    # 设置属性    node.set(‘name‘, ‘alex‘)    node.set(‘age‘, ‘18‘)    # 删除属性    del node.attrib[‘name‘]

############ 保存文件 ############tree = ET.ElementTree(root)tree.write("newnew.xml", encoding=‘utf-8‘)
from xml.etree import ElementTree as ET

tree = ET.parse(‘xo.xml‘)root = tree.getroot()

ele = ET.Element(‘Alex‘, {‘k1‘: ‘v1‘})ele.text = "我是内容"root.append(ele)

tree.write("new.xml", encoding="utf-8")

# 列表# root_list = [#     []# ]## list ==> class 类名# 类名() > 创建了一个对象# ele = list()# e = dict()# el = Element()# root_list.append(ele)
from xml.etree import ElementTree as ET

# 创建根节点root = ET.Element("famliy")

# 创建节点大儿子son1 = ET.Element(‘son‘, {‘name‘: ‘儿1‘})# 创建小儿子son2 = ET.Element(‘son‘, {"name": ‘儿2‘})

# 在大儿子中创建两个孙子grandson1 = ET.Element(‘grandson‘, {‘name‘: ‘儿11‘})grandson2 = ET.Element(‘grandson‘, {‘name‘: ‘儿12‘})son1.append(grandson1)son1.append(grandson2)

# 把儿子添加到根节点中root.append(son1)root.append(son1)

tree = ET.ElementTree(root)tree.write(‘oooo.xml‘,encoding=‘utf-8‘, xml_declaration=True, short_empty_elements=False)
def prettify(elem):    """将节点转换成字符串,并添加缩进。    """    rough_string = ET.tostring(elem, ‘utf-8‘)    reparsed = minidom.parseString(rough_string)    return reparsed.toprettyxml(indent="\t")

# 创建根节点root = ET.Element("famliy")

# 创建大儿子# son1 = ET.Element(‘son‘, {‘name‘: ‘儿1‘})son1 = root.makeelement(‘son‘, {‘name‘: ‘儿1‘})# 创建小儿子# son2 = ET.Element(‘son‘, {"name": ‘儿2‘})son2 = root.makeelement(‘son‘, {"name": ‘儿2‘})

# 在大儿子中创建两个孙子# grandson1 = ET.Element(‘grandson‘, {‘name‘: ‘儿11‘})grandson1 = son1.makeelement(‘grandson‘, {‘name‘: ‘儿11‘})# grandson2 = ET.Element(‘grandson‘, {‘name‘: ‘儿12‘})grandson2 = son1.makeelement(‘grandson‘, {‘name‘: ‘儿12‘})

son1.append(grandson1)son1.append(grandson2)

# 把儿子添加到根节点中root.append(son1)root.append(son1)

raw_str = prettify(root)

f = open("xxxoo.xml",‘w‘,encoding=‘utf-8‘)f.write(raw_str)f.close()
import zipfile

# 压缩# z = zipfile.ZipFile(‘laxi.zip‘, ‘a‘)# z.write(‘newnew.xml‘)# z.write(‘xo.xml‘)# z.close()

# 解压z = zipfile.ZipFile(‘laxi.zip‘, ‘r‘)# z.extractall()

# for item in z.namelist():#     print(item,type(item))z.extract("new.xml")

z.close()
import tarfile

# 压缩# tar = tarfile.open(‘your.tar‘,‘w‘)# tar.add(‘s1.py‘, arcname=‘ssss.py‘)# tar.add(‘s2.py‘, arcname=‘cmdb.py‘)# tar.close()

# 解压tar = tarfile.open(‘your.tar‘,‘r‘)# tar.extractall()  # 可设置解压地址

# for item in tar.getmembers():#     print(item,type(item))obj = tar.getmember("ssss.py")tar.extract(obj)

tar.close()
class SQLHelper:

    def __init__(self, a1, a2, a3):        print(‘自动执行init‘)        self.hhost = a1        self.uuserane = a2        self.pwd = a3        self.create(‘sss‘)    def fetch(self, sql):        # 连接数据        print(self.hhost)        print(self.uuserane)        print(self.pwd)        print(sql)    def create(self, sql):        pass    def remove(self, nid):        pass    def modify(self, name):        pass
 obj1 = SQLHelper(‘c1.salt.com‘, ‘alex‘, 123)# obj2 = SQLHelper(‘c2.salt.com‘, ‘alex1‘, 12333)# obj1.create()
class c1:

    def __init__(self,name,obj):        self.name = name        self.obj = obj

class c2:

    def __init__(self,name,age):        self.name = name        self.age = age

    def show(self):        print(self.name)        return 123

class c3:    def __init__(self, a1):        self.money = 123        self.aaa = a1

c2_obj = c2(‘aa‘, 11)# c2_obj是c2类型# - name = "aa"# - age = 11c1_obj = c1("alex", c2_obj)# c1_obj 是c1 类型# - name = "alex"# - obj = c2_objc3_obj = c3(c1_obj)# 使用c3_obj执行show方法ret = c3_obj.aaa.obj.show()print(ret)
"""class F1: # 父类,基类    def show(self):        print(‘show‘)

    def foo(self):        print(self.name)

class F2(F1): # 子类,派生类    def __init__(self, name):        self.name = name

    def bar(self):        print(‘bar‘)    def show(self):        print(‘F2.show‘)

obj = F2(‘alex‘)# obj.show()obj.foo()"""

# obj = F2()# obj.bar()# obj.show()# obj = F1()# obj.bar()

# class S1:##     def F1(self):#         self.F2()##     def F2(self):#         pass## class S2(S1):##     def F3(self):#         self.F1()##     def F2(self):#         pass## obj = S2()# obj.F3()# obj = S1()# obj.F1()class C_2:    def f2(self):        print(‘C-2‘)

class C_1(C_2):    def f2(self):        print(‘C-1‘)

class C0(C_2):    def f1(self):        print(‘C0‘)

class C1(C0):

    def f1(self):        print(‘C1‘)

class C2(C_1):    def f2(self):        print(‘C2‘)

class C3(C1,C2):    def f3(self):        pass

obj = C3()obj.f2()

2、函数式编程,面向对象编程实现:发送邮件的功能
# 函数
def mail(email, message):
print("去发吧")
return True

mail("[email protected]", "好人")

面向对象:类,对象

class Foo:

# 方法
def mail(self, email, message):
print(‘去发吧‘)
return True

# 调用
1、创建对象,类名()
obj = Foo()
2、通过对象去执行方法
obj.mail("[email protected]", "好人")

3、类和对象

a. 创建类
class 类名:

def 方法名(self,xxxx):
pass

b. 创建对象
对象 = 类名()

c. 通过对象执行方法
对象.方法名(123)

4、
函数式:

def fetch(host, username, password, sql):
pass
def create(host, username, password, sql):
pass
def remove(host, username, password, nid):
pass
def modify(host, username, password, name):
pass
...

fetch(....)
面向对象

class SQLHelper:

def fetch(self, sql):
pass

def create(self, sql):
pass
def remove(self, nid):
pass
def modify(self, name):
pass

obj1 = SQLHelper()
obj1.hhost = "c1.salt.com"
obj1.uuserane = "alex"
obj1.pwd = "123"

obj1.fetch("select * from A")

obj2 = SQLHelper()
obj2.hhost = "c2.salt.com"
obj2.uuserane = "alex"
obj2.pwd = "123"

obj2.fetch("select * from A")

========> 什么时候用面向对象?当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可

5、self是什么鬼?
self是一个python自动会给传值的参数

那个对象执行方法,self就是谁。

obj1.fetch(‘selec...‘) self=obj1

obj2.fetch(‘selec...‘) self=obj2

6、构造方法

类中有一个特殊的方法 __init__,类()自动被执行

7、面向对象

三大特性:封装、继承、多态

时间: 2024-07-28 16:19:08

1、python 函数式+面向对象的相关文章

深入浅出 Python 函数式编程

1.函数式编程的定义与由来 如果程序中的函数仅接受输入并产生输出,即输出只依赖于输入,数据不可变,避免保存程序状态,那么就称为函数式编程(Functional Programming,简称FP,又称泛函编程). 这种风格也称声明式编程(Declarative Programming),与之相对的是指令式编程(Imperative Programming),后者中的对象会不断修改自身状态.函数式编程强调程序的执行结果比执行过程更重要,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算

what's the python之面向对象

编程分为面向过程和面向对象,首先我们要了解什么是面向对象. 面向对象 面向过程就是我们之前学的内容,主要是函数式,其核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的

My way to Python - Day05 - 面向对象-思维导图

My way to Python - Day05 - 面向对象 思维导图

【人生苦短 Python当歌】——Python函数式编程01

对Python有一定了解的人应该知道,Python并不是一门函数式编程语言,而是一门支持多种范式的语言,这也使得在Python中也能实现函数式编程, 对于学习到Python函数式编程的朋友,在这里推荐大家看一本名字叫<Python函数式编程>(Functional Programming in Python)从这本书中你应该能收获不少: 怎么说呢,函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就把复杂的任务分解成简单的任务,这种就称为面向过程的程序设

Python -面向对象(一 基本概念)

一 Python简单介绍 Python是一个可移植的面向对象的脚本语言. Python尽管是一个脚本语言,但也是一个全然面向对象的语言. 由于它设计之初把易用性做为很重要的一个考量标准,所以用起来很简洁,优美(语法很灵活).所以使用Python能够高速地编写出可执行代码.与C/C++相比.Python程序的执行速度比較慢,一门语言既然能够生存下来.就有它自己的原因,Python语言也一样. 当今的计算机处理速度已经很快.对某些任务来说.执行速度并非首要考虑的因素.比方说为了实现数据库訪问的自己主

Python 函数式编程之迭代器、生成器及其应用

python 标准库中提供了 itertools, functools, operator三个库支持函数式编程,对高阶函数的支持,python 提供 decorator 语法糖. 迭代器 (iterator)和生成器(generator)概念是 python 函数式编程的基础,利用迭代器和生成器可以实现函数式编程中经常用到的 map(), filter(), reduce() 等过程以及 itertools, functools 中提供的绝大部分功能. 1.迭代器和生成器基础(next, ite

python函数式编程,列表生成式

1.python 中常见的集中存储数据的结构: 列表 集合 字典 元组 字符串 双队列 堆 其中最常见的就是列表,字典. 2.下面讲一些运用循环获取字典列表的元素 1 >>> dic={'name':'zhangsan','age':24,'city':'jinhua'} 2 >>> for key,value in dic.items(): 3 print(key,value) 4 5 6 name zhangsan 7 age 24 8 city jinhua 循环

Python的面向对象3

接下来,我们接着讲Python的面向对象,在上一次的博客中,我们详细介绍了类与对象的属性,今天,我们来详细介绍一下面向对象中的方法! 1.定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外部访问,但是,从类的内部是可以访问的,除了可以定义实例的属性,还可以定义实例的方法. 其实,实例的方法就是在类中定义函数,它的第一个参数永远是self,指向调用该方法的实例本身,其他参数和普通参数一致. get_name()就是一个实例方法,它的第一个参数是self,这个参数不需要显示传入 调用实例

我是如何开始去了解Python函数式编程--Python函数式编程初涉

Python函数式编程 1. 开始我们会了解什么是函数式编程: 函数:function 函数式:functional,一种编程范式 函数式编程特点:把计算视为函数而非指令,贴近计算 纯函数式编程:不需要变量,没有副作用,测试简单,支持高阶函数,代码简洁 Python支持的函数式编程特点: 不是纯函数式编程:允许有变量 支持高阶函数:函数也可以作为变量传入 支持闭包:有了闭包就能返回函数 有限度的支持匿名函数 2. 高阶函数 变量可以指向函数,函数名其实就是指向函数的变量,而高阶函数其实就是可以接