Python全栈工程师(包、模块 的导入)

ParisGabriel
 
 
 
         每天坚持手写  一天一篇  决定坚持几年 为了梦想 为了信仰
 
   

                      Python人工智能从入门到精通


$ pip3 install tensorflow :
  第三方模块 tensorflow 的安装
  电脑必须有网 命令行自动下载安装
dir(模块名):
  查看模块所有属性

自定义模块导入
示例:

 
   
自定义模块的实现方法

def
myfac(n): print('正在计算', n, '的阶乘') def mysum(n): print("正在计算1+2+3+...+%d的和" % n) name1 = "Audi" name2 = "TESLA" print("mymod模块被加载!")

 

注意事项:
  自定义模块的文件要求以.py结尾,文件名必须是标识符的规则

 

导入 语句 import 语句等 搜索块的路径顺序

  import mymod
  from mymod import myfac
  from mymod import *
去哪儿找这个mymod.py?
  搜索顺序:
    1. 搜索程序运行时的路径(当前路径)
    2. sys.path 提供的路径  sys.path是一个列表,里面放的都是模块的搜索路径
    3. 搜索内建模块

模块的加载过程:
  1. 在模块导入时,模块的所有语句都会执行
  2. 如果一个模块已经导入,则再次导入不会重新执行模块内的语句


模块的重新加载
  import mymod
  import imp
  imp.reload(mymod) # 重新加载mymod模块

模块以导入和执行的过程:
  1. 先搜索相关的路径找到模块名.py
  2. 判断是否有此模块对应的.pyc文件。如果.pyc比.py文件新,则直接加载.pyc文件
  3. 否则 用模块.py,文件生成.pyc,并加载执行

pyc python的编译
  编译 解释执行
  mymod.py --------> mymod.pyc --------> python3

  模块  -------->  编译好的Python3文件  --------> Python3解释执行器

模块的文档字符串:
  模块内第一个没有赋值给任何变量的字符串称为模块的文档字符串

  模块的 __doc__ 属性
    此属性用于绑定模块的文档字符串

  模块的 __file__属性
    此属性用于记录模块对应的文件路径

示例:

 
   
# 模块的文档字符串:

'''我的自定义模块mymod2

此模块有两个函数
myfac和 mysum
...
'''

def
myfac(n): '''自定义用来测试用的myfac的文档字符串''' print('正在计算', n, '的阶乘') def mysum(n): print("正在计算1+2+3+...+%d的和" % n) name1 = "Audi" name2 = "TESLA" print("mymod模块被加载!")

模块的 __name__属性
  __name__属性 用来记录模块自身名字

  作用:
    1. 记录模块名
    2. 用来判断是否为主模块
  说明:
    当此模块为主模块(也就是第一个运行的模块时)运行时, __name__绑定 '__main__'
    当此模块不是主模块时,而是被其它模块导入时,此时 __name__ 绑定模块名

    示例:

 
   
'''此示例示意 mymod3的 __name__属性的用法'''


def
test(): pass print("__name__属性绑定的值是:", __name__) if __name__ == '__main__': print("当前mymod3.py 正在以主模块运行") else: print("当前mymod3.py 正在被其它模块导入") print("我的模块名是", __name__)

 


模块的 __all__列表
  模块中的 __all__列表是一个用来存放可导出属性的字符串列表

  作用:
    当用 from xxx import *语句导入时只导入 __all__ 列表内的属性  并且只对 from xx import * 有效

示例:

# __all__属性只对 from import * 语句有效

__all__ = ['hello1', 'name1']


def hello1():
    pass


def hello2():
    pass


def hello3():
    pass


name1 = 'aaaaaa'
name2 = 'aaaaaa'

 

 

模块的隐藏属性
  模块中'_'开头的属性,在from xxx import * 导入时不被导入,通常称这些属性为隐藏属性

示例:

 此模块在用from mymod5 import *导入时,只能导入:
# f1和 name1
def f1():
    pass


def _f2():
    pass


def __f3():
    pass


name1 = 'aaaaa'
_name2 = 'bbbbb'

 

 

随机模块 random
模块名: random
作用:
用于模拟或生成随机输出的模块

 

随机模块 random

说明:
random模块是用于模拟或生成随机输出的模块.

import random as R

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值