python基础(七):包、模块、OOP

模块与包

基础概念

包:
在这里插入图片描述
指令: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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值