模块
任何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()