Python入门之模块

#什么是模块

#一系列的功能的集合体
#分为三大类:  内置模块,自定义模块,第三方模块
#一个py文件本身就是一个模块

# #在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别: 
#
#   1 使用python编写的.py文件
#
#   2 已被编译为共享库或DLL的C或C++扩展
#
#   3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
#
#   4 使用C编写并链接到python解释器的内置模块

#1、从文件级别组织程序,更方便管理
# 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。
# 这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
#
# #2、拿来主义,提升开发效率
# 同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率
#
# #ps:
# 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,
# 需要时就通过python test.py方式去执行,此时test.py被称为脚本script。

# 模块可以包含可执行的语句和函数的定义,这些语句的目的是初始化模块,它们只在模块名第一次遇到导入import语句时才执行(import语句是可以在程序中的任意位置使用的,
# 且针对同一个模块很import多次,为了防止你重复导入,python的优化手段是:第一次导入后就将模块名加载到内存了,
# 后续的import语句仅是对已经加载到内存中的模块对象增加了一次引用,不会重新执行模块内的语句),如下

#test.py
# import model_file #只在第一次导入时才执行spam.py内代码,
# 此处的显式效果是只打印一次'from the model_file.py',当然其他的顶级代码也都被执行了,只不过没有显示效果.


#2、为何要用模块



#3、如何用模块

# from python开发.python基础.Day07 import model_file

# 执行了model_file
#模块名.名字:指名道姓地问模块要名字对应的值,不会与名称空间里的名字发生关系


#无论是查看还是修改操作的都是原模块本身,都是以原模块为基准的,与调用位置无关
# model_file.login()
# model_file.register()


#推荐使用!
# import time
# import requests
# import turtle

# import time,turtle,requests  不推荐使用


#导入规范顺序

#1、内置模块
#2、第三方模块
#3、自定义模块


# import model_file as m
# import 模块名 as 别名


#模块是第一类对象


#自定义模块命名应采用纯小写+下划线


#可以在函数内导入模块使用

#import 导入模块在使用时必须加前缀“模块”.
#优点:肯定不会与当前名称空间的名字冲突
#确定:加前缀显得麻烦!


#唯一的区别就是:使用from...import...则是将spam中的名字直接导入到当前的名称空间中,所以在当前名称空间中,
# 直接使用名字就可以了、无需加前缀:model_file.

#from...import...的方式有好处也有坏处
    # 好处:使用起来方便了
    # 坏处:容易与当前执行文件中的名字冲突




# import model_file
#
# print(model_file)


# from ... import ...导入也发生了三件事情
#1、产生一个模块名称空间
#2、运行model_file.py将运行过程中产生的名字丢到模块名称空间去
#在当前名称空间拿到 一个名字,该名字模块名称空间中的某一个内存地址


# from python开发.python基础.Day07.model_file import login
# login()


#*:导入模块中所有名字 ---------------不推荐使用
#from model_file import *

# __all__=[x,a]
# #控制*的名字

#不要写循环导入模块的代码


#无论是import还是from...import...在导入模块时都涉及到的查找问题
#优先级:
#1、内存(内置模块)
#2、从硬盘找(按照一个一个文件夹找)



import sys
#值为一个列表,存放了一系列的文件夹
#第一个文件夹就是第一个执行文件夹
print(sys.path)


# sys.modules#显示已加载到内存的模块!

#model_file模块代码

print('model_file文件运行了')
def login():
    user_name=input('请输入用户名:')
    user_pwd=input('请输入密码:')
    if user_name=='loky' and user_pwd=='123':
        print('login in successful!')
    else:
        print('faild to login !')
def register():
    print('这是一个注册功能!')

def transform():
    print('这是一个转账功能!')

# if __name__ == '__main__':
#     login()
#     print('文件执行!')
#
# else:
#     print('模块被调用')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值