美文网首页
《零基础上手Python爬虫系列》 - 06 包、模块和引入

《零基础上手Python爬虫系列》 - 06 包、模块和引入

作者: 聂云⻜ | 来源:发表于2020-02-15 23:51 被阅读0次

本篇讲述Python包、模块和函数和变量的引入,持续更新

写代码要注意高性能、封装性(可复用)和抽象

包和子包

包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。

在文件夹下添加一个特殊文件init.py(也是一个模块,内容可以为空),可以让一个普通文件编程一个包。

init的模块名直接就叫seven(上级包名),当导入一个包或一个包里边的变量的时候,这个文件会自动被执行,可以进行一些初始化

init.py的作用,指定要导入的模块和库,然后每个模块里引入包,包默认执行init,就可以直接使用里边的方法和变量了

__all__ = ['c7']

模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码放到一个模块mysql.py,可以让代码更易管理。

def mysql_connector(sql):
    '''
        mysql连接器
    '''
    db = pymysql.connect(
        host="127.0.0.1",
        user='dev',
        password='@python',
        database='demo',
        port=3306
    )

    cursor = db.cursor()
    limit = cursor.execute(sql)
    db.close()

    results = cursor.fetchmany(limit)
    return results

命名空间和作用域

每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样

Python 会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。所以要给函数内的全局变量赋值,必须使用 global 语句。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
money = 100
def add_money():
   # 想改正代码就取消以下注释:
   # global money
   money += 1
 
print(money)
add_money()
print(money)

import 语句

导入一个模块,相当于导入的是一个文件夹,是个相对路径。使用的时候,先导入再调用,采用模块.函数

import c7
print(c7.a)

as 别名,简化调用

import t.c7 as m

# 在调用模块中的函数时
print(m.a)

运行完执行生成一个缓存文件__pycache__(Python生成的字节码文件)

导入t包c7下的所有变量和函数(比较冗余)

from … import 语句

from 语句让你从模块中导入一个指定的部分到当前命名空间中,比如变量和函数。

导入了一个模块中的一个函数,相当于导入的是一个文件夹中的文件,是个绝对路径,使用时候直接用函数名或变量名即可。

__all_ = ['a', 'c']
a = 2
c = 3

模块内置变量,all 可以指定*导入时所引入的变量

# \可以换行
from c9 import a,b\
c
print(a)

# 括号也可以
from c9 import (a,b,
c)
print(a)

from … import * 语句

把一个模块中所有函数都导入进来,相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径,使用时候直接用函数名或变量名即可。

from t.c7 import *
print(a)
print(b)

注意事项

包和模块是不会被重复导入的,避免循环导入

p1 中引入p2模块,p2中引入P1,就属于直接循环引入,会报错

p1 引入p2模块中的变量,p2引入p3, p3引入p1,属于间接循环引入,同样报错 

如果单个模块中没有问题,可以考虑是否是引入链有问题

p1中引入P2, 就会执行被导入的p2中的代码

相关文章

  • 《零基础上手Python爬虫系列》 - 06 包、模块和引入

    本篇讲述Python包、模块和函数和变量的引入,持续更新 写代码要注意高性能、封装性(可复用)和抽象 包和子包 包...

  • Python2.7爬虫-爬取简书文章-入门

    参考原文: python开发简单爬虫Python爬虫实战Firefox抓包分析 分为五个模块:主模块、URL管理器...

  • 从0到1学习Python3网络爬虫系列教程

    版权声明:版权所有:公众号:学习python的正确姿势 python爬虫前,抓包 python爬虫系列教程00 |...

  • Python爬虫实战之爬取链家广州房价_03存储

    问题引入 系列目录: Python爬虫实战之爬取链家广州房价_01简单的单页爬虫 Python爬虫实战之爬取链家广...

  • 2018-08-13

    模块和包的定义 import 和 from import包和模块的引入import引入一个模块import 模块名...

  • Python学习笔记

    Python学习笔记 模块 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package...

  • webmagic+Xpath实现简单爬取

    webmagic是一个简单上手的爬虫框架,提供简单灵活的API,只需少量代码即可实现一个爬虫 一、引入jar包 二...

  • 包和pygame

    python中的包: 引入包、使用import.模块的方法导入、通过form文件import模块的方式导入、在文件...

  • Python爬虫学习系列教程

    转自: 静觅»Python爬虫学习系列教程 Python爬虫学习系列教程 Python版本:2.7 一、爬虫入门 ...

  • net_package

    python模块(包)之网络请求(爬虫)相关包介绍 网络请求最复杂莫过于爬虫,不同的业务场景应用的工具不尽相同,下...

网友评论

      本文标题:《零基础上手Python爬虫系列》 - 06 包、模块和引入

      本文链接:https://www.haomeiwen.com/subject/dhvufhtx.html