模块与包
基础概念
包:
指令:import、form、importlib.reload(模块)
作用:代码重用、命名空间、实现数据或服务共享
步骤:找——编译为字节码——运行
搜索范围:程序主目录->环境变量->标准库->扩充库
代码示例
- 调用其他函数参数
import math
import models
def hello():
f = 6.535673
print(math.pi)
print(math.trunc(f))
print(models.page)
if __name__ == "__main__":
hello()
import math
from models import page
def hello():
print(page)
if __name__ == "__main__":
hello()
- 当不同函数中参数或函数名相同时
#重命名
from models import test as m_test
from models import test as v_test
import models
import views
models.test()
models.views()
方法
以c为代表的面向过程的语言由数据结构和算法构成
以java为代表的面向对象的语言,计算机围绕人的思想,尽量用人的思维分析问题
python支持面向对象、面向过程、函数式编程
OOP
步骤
OOA 面向对象分析
OOD 面向对象设计
OOP 面向对象编程
实现
分析对象特征行为
写类描述对象模板
实例化,模拟过程
示例
例一:字典 需要注意format
def search_book(title):
print('搜索包含{}名字的书籍' .title)
#pass
book = {
'title' : 'python入门',
'price' : 39.00,
'author' : 'peter',
'search_book' : search_book
}
print(book['title'])
print(book.get('price',0.0))
book.get('search_book')('Python')
输出
python入门
39.0
<built-in method title of str object at 0x03594DE0>
调试后
def search_book(title):
print('搜索包含{}名字的书籍' .format(title))
#pass
book = {
'title' : 'python入门',
'price' : 39.00,
'author' : 'peter',
'search_book' : search_book
}
print(book['title'])
print(book.get('price',0.0))
book.get('search_book')('Python')
输出
python入门
39.0
搜索包含Python名字的书籍
例二:self、info、repl
import datetime
class Book:
#下划线开头和结尾的是预定义的函数
#def __init__(self,title,price,author,publisher,pubdate):
def __init__(self,
title,
price=0.0,
author='',
publisher=None,
pubdate=datetime.date.today()):
self.title = title
self.price = price
self.author = author
self.publisher = publisher
self.pubdate = pubdate
def __repr__(self):
#返回字符串
return '<图书 {}>'.format(self.title)
def print_info(self):
print('当前这本书的信息如下')
print('书名:{}'.format(self.title))
print('价格:{}'.format(self.price))
print('作者:{}'.format(self.author))
print('出版商:{}'.format(self.publisher))
print('出版时间:{}'.format(self.pubdate))
#不用new相当于直接调用init函数
book1 = Book('python base',25,'Tom','teacher',datetime.date(2019,11,8))
book1.print_info()
# print(book1.title)
# print(book1.pubdate)
book2 = Book('opencv从入门到精通')
book2.print_info()
输出
当前这本书的信息如下
书名:python base
价格:25
作者:Tom
出版商:teacher
出版时间:2019-11-08
当前这本书的信息如下
书名:opencv从入门到精通
价格:0.0
作者:
出版商:None
出版时间:2019-11-08
>>>from day6.mainday6 import Book
当前这本书的信息如下
书名:python base
价格:25
作者:Tom
出版商:teacher
出版时间:2019-11-08
当前这本书的信息如下
书名:opencv从入门到精通
价格:0.0
作者:
出版商:None
出版时间:2019-11-08
>>>book3 = Book('TRYTRY')
>>>book3.title
'TRYTRY'
>>>book3
<图书 TRYTRY>