Python开发【第七篇】: 面向对象和模块补充

内容概要

  1. 特殊成员
  2. 反射
  3. configparser模块
  4. hashlib模块
  5. logging模块
  6. 异常处理
  7. 模块

1. 特殊成员

2. 反射

3. configparser模块

  该模块适用于配置文件件的格式与windows ini文件类似,可以包含一个或多个节(section)每个节可以有多个参数(键=值). 首先, 我们先看一个xxx服务器的配置文件

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes

[server]
User = hg
Bind = 0.0.0.0
Port = 8888

[client]
IP = 127.0.0.0
Port = 50022
ForwardX11 = no

我们用configparser就可以对这样的文件进行处理.首先, 是初始化

# 1. 初始化
import configparser
config = configparser.ConfigParser()

config["DEFAULT"] = {
    "sleep": 1000,
    "session-time-out": 30,
    "user-alive": 999999
}

config["TEST-DB"] = {
    "db_ip": "192.168.17.189",
    "port": "3306",
    "u_name": "root",
    "u_pwd": "123456"
}

config[‘168-DB‘] = {
 "db_ip": "152.163.18.168",
 "port": "3306",
 "u_name": "root",
 "u_pwd": "123456"
}

f = open("config.ini",mode="w")
config.write(f)  # 写入文件
f.flush()
f.close()

# 读取文件信息:
config = configparser.ConfigParser()

config.read("config.ini")  # 读取文件
print(config.sections())   # 获取到所有section(章节)。 [DEFAULT]是默认信息,每个章节都有[DEFAULT]中的信息
# 执行结果:  [‘TEST-DB‘, ‘168-DB‘]

# 从章节中获取到任意的数据,get 方法Section下的key对应的value
print(config.get("TEST-DB","db_ip"))
# 执行结果: 192.168.17.189

# 也可以像字典一样操作
print(config["TEST-DB"][‘db_ip‘])
print(config["168-DB"]["db_ip"])
# 执行结果:
# 192.168.17.189
# 152.163.18.168

# 循环TEST-DB章节下的所有key
for k in config["TEST-DB"]:
    print(k)

# 所有key:value
for k,v in config["TEST-DB"].items():
    print(k,v)

print(config.options("TEST-DB"))  # 同for循环,找到 "TEST-DB"下所有键
# [‘db_ip‘, ‘port‘, ‘u_name‘, ‘u_pwd‘, ‘sleep‘, ‘session-time-out‘, ‘user-alive‘]

print(config.items("TEST-DB"))  # 找到 "TEST-DB"下所有键值对
# [(‘sleep‘, ‘1000‘), (‘session-time-out‘, ‘30‘), (‘user-alive‘, ‘999999‘), (‘db_ip‘, ‘192.168.17.189‘), (‘port‘, ‘3306‘), (‘u_name‘, ‘root‘), (‘u_pwd‘, ‘123456‘)]

增删改操作:

# 先读取. 然后修改. 最后写回文件
config = configparser.ConfigParser()
config.read("config.ini")  # 读取文件

# 添加一个章节
config.add_section("172-DB")
config["172-DB"] = {
    "db_ip": "172.168.12.11",
    "port": "3306",
    "u_name": "root",
    "u_pwd": "123456"
}

# 修改信息
config.set("168-DB","db_ip","10.0.3.26")

# 删除章节
config.remove_section("TEST-DB")

# 删除元素信息
config.remove_option("168-DB","db_ip")

# 写回文件
config.write(open("config.ini",mode="w"))

4. hashlib模块

5. logging模块

6. 异常处理

7. 模块

8. 包

原文地址:https://www.cnblogs.com/root0/p/10430805.html

时间: 2024-10-10 16:02:23

Python开发【第七篇】: 面向对象和模块补充的相关文章

Python开发【内置模块篇】日志模块

logging配置 1 import logging 2 logging.basicConfig(level=logging.WARNING, 3 format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', 4 datefmt='%a, %d %b %Y %H:%M:%S') 5 try: 6 int(input('num >>')) 7 except ValueError: 8 logging.e

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

Python开发【第一篇】:目录

本系列博文改编自武沛齐老师的原创博文,主要包含  Python基础.前端开发.Web框架.缓存以及队列等内容 ,用于学习记录成长!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python

Python开发【第一篇】基础题目二

1 列表题 l1 = [11, 22, 33] l2 = [22, 33, 44] # a. 获取l1 中有,l2中没有的元素 for i in l1: if i not in l2: print(i) # 11 # b. 获取l2 中有,l1中没有的元素列表 for i in l2: if i not in l1: print(i) # 44 # c. 获取l1 和 l2 中内容相同的元素 for i in l1: if i in l2: print(i, end=" ") # 22

python基础-第七篇-7.2面向对象(进阶篇)

进入到今天的探索前,我先对上节内容进行一下回顾: 面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用 类是一个模板,模板中包装了多个函数可供使用 对象是基于类创建的,实例用于调用被包装在类中的函数 对于c#和java--只能用面向对象编程,而对于ruby和python则可以用函数编程和面向对象编程 面向对象不是所有的情况都适用,当两个东西不存在公共的部分,最好用函数编程 对象编程里的self是形式参数,是python内部把对象当参数传递进去的 __init__  构造方法--当实例化

Python开发【第*篇】【面向对象编程】

一.概述 面向过程:根据业务逻辑从上到下,完成代码: 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可: 面向对象:对函数进行分类和封装. 二.面向对象 1.类.对象.方法.实例 ①.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同. 普通字段属于对象,每个对象都要保存一份(对象是根据模板创建的实例,通过实例对象可以执行类中的函数) 静态字段属于类,在内存中只保存一份 应用场景: 通过类创建对象时,如果每个对象都具有相同的字

Python基础-第七天-面向对象编程进阶和Socket编程简介

本篇内容: 1.面向对象编程进阶-静态方法 2.面向对象编程进阶-类方法 3.面向对象编程进阶-属性方法 4.面向对象编程进阶-特殊成员(内置方法) 5.面向对象编程进阶-反射 6.异常处理.断言 7.Socket编程简介 一.面向对象编程进阶-静态方法 1.静态方法的实现 通过@staticmethod装饰器可以把其装饰的方法变为一个静态方法: 变成静态方法后,形参中可以不用写self了.如果写了self,默认是不会把对象本身传递给self,需要手动传递: class Dog(object):

Python开发【第一篇】:初识Python

Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众

python开发中对正则表达式及re模块的学习

正则表达式是个很牛逼的东西,不管是在javascript,还是在Python web开发(http://www.maiziedu.com/course/python-px/)中,我们都会遇到正则表达式,虽然javascript和Python的正则表达式区别不大,但是正则表达式是Python中必不可少的一部分,所以今天就跟大家一起讨论一下python中的re模块. re模块包含对正则表达式的支持. 什么是正则:  正则表达式是可以匹配文本片段的模式.  正则表达式'Python'可以匹配'pyth