
正文
python基础之模块,面向对象
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
hash
什么是hash?
hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值
为何用hash?
hash值有三大特性:
1.只要传入的内容一样,得到的hash值必然一样
2.只要使用的hash算法固定,无论传入的内容多大,得到的hash值的长度是固定的
3.不可以用hash值逆推出来的内容
基于1.2可以用于下载文件时做一致性校验等
基于2.3可以用于密码的加密等
如何使用hash
import hashlib
m = hashlib.md5() # 相当于造工厂
m.update(‘hello’.encode(‘utf-8’)) # 相当于送原料
m.hexdigest() # 相当于产出产品
shelve
import shelve # 序列化,将内容以字典的形式存入文件
f=shelve.open(r'sheve.txt')
# f['stu1_info']={'name':'egon','age':18,'hobby':['piao','smoking','drinking']}
# f['stu2_info']={'name':'gangdan','age':53}
# f['school_info']={'website':'http://www.pypy.org','city':'beijing'}
print(f['stu1_info']['hobby'])
f.close()
xml
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank updated="yes">69</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
xml源码
python中操作
import xml.etree.ElementTree as ETtree = ET.parse("xmltest.xml")
root = tree.getroot()
print(root.tag)#遍历xml文档
for child in root:
print('========>',child.tag,child.attrib,child.attrib['name'])
for i in child:
print(i.tag,i.attrib,i.text)#只遍历year 节点
for node in root.iter('year'):
print(node.tag,node.text)
#---------------------------------------import xml.etree.ElementTree as ETtree = ET.parse("xmltest.xml")
root = tree.getroot()#修改
for node in root.iter('year'):
new_year=int(node.text)+1
node.text=str(new_year)
node.set('updated','yes')
node.set('version','1.0')
tree.write('test.xml')#删除node
for country in root.findall('country'):
rank = int(country.find('rank').text)
if rank > 50:
root.remove(country)tree.write('output.xml')
configparser
[section1]
k1 = v1
k2:v2
user=egon
age=18
is_admin=true
salary=31[section2]
k1 = v1
ini文件
python中读取
import configparserconfig=configparser.ConfigParser()
config.read('a.cfg')#查看所有的标题
res=config.sections() #['section1', 'section2']
print(res)#查看标题section1下所有key=value的key
options=config.options('section1')
print(options) #['k1', 'k2', 'user', 'age', 'is_admin', 'salary']#查看标题section1下所有key=value的(key,value)格式
item_list=config.items('section1')
print(item_list) #[('k1', 'v1'), ('k2', 'v2'), ('user', 'egon'), ('age', '18'), ('is_admin', 'true'), ('salary', '31')]#查看标题section1下user的值=>字符串格式
val=config.get('section1','user')
print(val) #egon#查看标题section1下age的值=>整数格式
val1=config.getint('section1','age')
print(val1) ##查看标题section1下is_admin的值=>布尔值格式
val2=config.getboolean('section1','is_admin')
print(val2) #True#查看标题section1下salary的值=>浮点型格式
val3=config.getfloat('section1','salary')
print(val3) #31.0改写
import configparserconfig=configparser.ConfigParser()
config.read('a.cfg',encoding='utf-8')#删除整个标题section2
config.remove_section('section2')#删除标题section1下的某个k1和k2
config.remove_option('section1','k1')
config.remove_option('section1','k2')#判断是否存在某个标题
print(config.has_section('section1'))#判断标题section1下是否有user
print(config.has_option('section1',''))#添加一个标题
config.add_section('egon')#在标题egon下添加name=egon,age=18的配置
config.set('egon','name','egon')
config.set('egon','age',18) #报错,必须是字符串#最后将修改的内容写入文件,完成最终的修改
config.write(open('a.cfg','w'))
面向对象编程
面向对象编程的核心是对象二字,对象是特征与技能的结合体。
优点:扩展性强
缺点:复杂程度要高于面向过程
应用场景:需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业内部软件,游戏等都是面向对象的程序设计大显身手的好地方
类:种类,分类,类别
对象是特征与技能的结合体,类是一系列对象相似的特征与技能的结合体
强调:站的角度不同,总结出的类截然不同
现实中:先有对象,再有类
程序中:必须先定义类,后调用类来产生对象
定义:类体代码会在定义阶段立刻执行,产生类名称空间
class OldboyStudent:
school='oldboy'
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex
def learn(self):
print('%s is learning' %self.name) #新增self.name
def eat(self):
print('%s is eating' %self.name)
def sleep(self):
print('%s is sleeping' %self.name)
s1=OldboyStudent('李坦克','男',18)
s2=OldboyStudent('王大炮','女',38)
s3=OldboyStudent('牛榴弹','男',78)
调用类产生对象,调用类的过程,又称为实例化,结果称为对象/实例







