zoukankan      html  css  js  c++  java
  • 模块初识

    1.模块的定义

    本质上就是.py结尾的python文件,用来从逻辑上组织python代码(变量,函数,类,逻辑),为了实现一个功能。

    2.模块的调用方法

    首先编写一个模块文件:

     1 name='Tao'
     2 
     3 def say():
     4     print(name)
     5 
     6 def logger():
     7     print('logger')
     8 
     9 def login():
    10     print('login')

    方法一:import module1,module2

     1 print(module_test.name) 2 module_test.say() 

    方法二:from ... import ...

    1 from module_test import say
    2 say()
    3 
    4 from module_test import logger
    5 logger()
    6 
    7 from module_test import login
    8 login()

    from import 与import的区别(看import后面): 

        a.import module_test调用时需要加模块名前缀module_test.say()。

        b.from module_test import say调用时直接say()不用加模块名前缀。

    方法三:from ... import ... as ...

     1 from module_test import login as login_tao #调用时更改函数名 2 login_tao() 

    3.调用模块的本质

    a.import module_test的本质

        将module_test内的所有代码解释一遍统一赋值给了module_test的变量,调用的时候加上module_test的前缀。

    b.from module_test import login的本质

        只找login这个函数的代码,相当于把module_test模块中的login代码解释赋值给了login调用时不用加模块前缀,直接调用。

    4.包(package)

    定义:用来从逻辑上组织模块的,放模块的,本质是一个目录(必须带有一个__init__.py文件)。

    导入包的方法:import 包名。

    导入包的本质:导入包的本质就是执行pack里面的__init__.py文件,即import 包名这行代码直接执行__init__.py文件。

        运用导入包的本质,即导入包的本质就是执行pack里面的__init__.py文件调用模块。通过在__init__.py文件内写入导入模块代码,可实现导入包即调用模块的功能

    __init__.py文件:

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 # Author:James Tao
    4 
    5 print('from the package')
    6 
    7 from . import module_test#从当前目录下导入module_test,‘.’代表__init__的路径即当前目录

    执行调用:

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 # Author:James Tao
    4 
    5 #导入包的方法
    6 import pack #执行__init__.py,调用module_test
    7 pack.module_test.login()

    5.当模块在不同级目录下时,模块的调用方法

    a.调用同级文件中的module时直接from 文件名 import 模块名。

     1 from pack import module_test 2 module_test.login() 

    b.直接加环境变量,将模块所在文件的地址加到sys.path中。

    1 print(sys.path)
    2 day5_DIR=os.path.dirname(os.path.abspath(__file__))
    3 pack_DIR=day5_DIR+'\'+'pack'
    4 sys.path.append(pack_DIR)
    5 print(sys.path)
    6 
    7 import module_test
    8 module_test.login()

    6.模块导入优化

    from 模块名 import 函数名

    执行时直接:函数名(),节省代码,避免重复调用

    7.模块的分类

    a.标准库,自带模块

    b.开源模块,别人写的模块

    c.自定义模块,自己写的模块

    代码目录结构:

  • 相关阅读:
    SharePoint服务器端对象模型 之 访问用户、用户组和权限(Part 2)
    SharePoint服务器端对象模型 之 访问用户、用户组和权限(Part 1)
    SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 4)
    SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 3)
    SharePoint 服务器端对象模型 之 使用LINQ进行数据访问操作(Part 2)
    Restful.Data 开源持久层组件项目最新进展和使用说明
    高性能网站架构设计之缓存篇(6)- Redis 集群(中)
    让 asp.net 在 mac 上飞
    高性能网站架构设计之缓存篇(5)- Redis 集群(上)
    高性能网站架构设计之缓存篇(4)- Redis 主从复制
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/9862375.html
Copyright © 2011-2022 走看看