包与模块管理及面向对象编程OOP 01

模块

任何python程序都可作为模块导入。假如写了一个程序并将其保存在文件hello.py中,这个文件的名称将成为模块的名称。
倘若想要将其他文件中的函数导入可以使用以下命令

import models    //将models模块导入
from models import page    //将models中的page导入
from models import test as mtest    //将models中的test导入并重命名为mtest

模块的主要作用:代码重用、命名空间、实现数据或服务共享。
导入模块的步骤:首先找到模块文件,然后编译为字节码,最后运行模块文件。
导入模块时的搜索范围(按照从先到后的顺序):程序主目录、环境目录、标准库、扩展库。
当模块内容更改后,此时需要对已经导入的模块进行重载操作,这时可以使用importlib.reload(模块)

import importlib
importlib.reload(models)    //模块重载

为组织模块,可将其编组为包(package)。包实际上就是另一种模块,但有趣的是它们可以包含其他模块。模块存储在扩展名为.py的文件中,而包则是一个目录。包通常包含__init__.py文件,当包第一次被调用时该文件被使用,且该文件仅被执行一次。
例如:在__int__.py中写入print(‘a包已经被调用’)

>>>import a
a包已经被调用
>>>import a

面向对象编程OOP

面向过程编程:人按照计算机的思维进行编程,重点在于算法和数据结构。
面向对象编程:计算机按照人的思想来,尽量符合人的思维方式分析问题并解决问题的过程。
面向对象编程关键在于找出对象,分析对象的特征和行为。
面向对象步骤:
1.OOA:面向对象分析
2.OOD:面向对象设计
3.OOP:面向对象编程
实现过程:
1.分析对象的特征和行为
2.写类描述对象模板
3.实例化:模拟过程
下面以图书管理举例:
图书管理的对象为书,书的特征有:书的标题、价格、作者、出版社、出版时间等,因此可以写一个描述对象书的类。

import datetime

class Book:
    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 __rept__(self):
        return '<图书 {} at {}>'.format(self,title,id(self))
    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))
book1=Book('C#精典',29.9,'Tom','新华出版社',datetime.date.today(2016,03,01))
book1.print_info()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值