Python基础知识(六)

Python基础知识(六)

一、包与模块的管理

(一)、模块:后缀为.py的脚本文件

  模块models.py

在这里插入图片描述
模块views.py
在这里插入图片描述

(二)、指令

1、import用法:(导入模块中的所有包)

导入models中的所有成员
在models.py文件中:在这里插入图片描述
在main.py文件中导入models模块
在这里插入图片描述运行结果:
在这里插入图片描述
导入views.py中的所有成员:

import views

print('hello')


def  hello():
     print(models.page)


if  __name__ == "__main__":
  views.test()

运行结果:
在这里插入图片描述

2、from import 的用法

导入文件的指定成员

from models import page

print('hello')


def  hello():
     print(page)


hello()

运行结果:
在这里插入图片描述
导入文件的全部成员:

from models import *

print('hello')


def  hello():
     print(page)


hello()

运行结果:
在这里插入图片描述

3、避免重名,对不同文件里的同名成员进行改名

from models import  test  as  m_test
from views import test as v_test

v_test()

运行结果:
在这里插入图片描述

4、importlib.reload(模块)

运行步骤带来的问题:在python的控制台上每次执行导入操作时,先编译为字节码,然后运行模块文件,原文件改变后控制台因为保存的是原字节码生成的文件,所以运行结果不变
在这里插入图片描述
在控制台上:
在这里插入图片描述
解决办法:使用importlib.reload(模块)重新载入
控制台程序:

>>>import  importlib
>>>importlib.reload(models)
<module 'models' from 'E:\\mypython03\\models.py'>
>>>models.test()
优品课堂  uke.cc
models.test()

容易犯的语法错误:对导入文件成员时,不能使用from import语法。
原始.py文件
在这里插入图片描述
控制台导入文件:在这里插入图片描述
更改.py文件
在这里插入图片描述

(三)、写单独的脚本文件的原因

实现代码重用
节省命名空间
实现数据或服务共享

(四)、步骤:

1、找到模块文件
2、编译为字节码  
3、运行模块文件

(五)、搜索范围

 1、程序主目录
 2、环境变量
 3、标准库
 4、扩展库(自己写的优先)

(六)、包

鼠标右键点击所建立的project,选择new,点击python package即可。
在包下面建立文件:
在这里插入图片描述
使用__init__.py文件
在这里插入图片描述
控制台上:
在这里插入图片描述
注:建立的包只在第一次使用的时候有效,暴力的代码只执行一次。

二、面向对象编程

特征:封装,继承,多态
例子:
def search_book(title):
      print('搜索包含书关键字{}的图书'.format(title))


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')

运行结果:
在这里插入图片描述

(一)分析步骤

   OOA面向对象分析
   OOD面向对象设计
   OOP面向对象编程

在这里插入图片描述

(二)实现步骤

  1、分析对象特征行为
  2、写类描述对象模板
  3、实例化,模拟过程
import  datetime
class Book:
    def  __init__(self,title,price,author,publisher,pubdate):
        self.title = title
        self.price = price
        self.author = author
        self.publisher = publisher
        self.pubdate = pubdate


book1 = Book('C#精典',29.9,'Tom','优品课堂',datetime.date(2016,3,1))


print(book1.title)
print(book1.price)

运行结果:
在这里插入图片描述
类的定义

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 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(2016,3,1))
book1.print_info()


book2 = Book('flask  入门到精通')
book2.print_info()

运行结果
在这里插入图片描述

(三)repr(self):决定在控制台上打印定义的类的表现形式

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 __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))


book1 = Book('C#精典',29.9,'Tom','优品课堂',datetime.date(2016,3,1))
book1.print_info()


book2 = Book('flask  入门到精通')
book2.print_info()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值