Python_模块

1. 基本概念和import 导入复习

 

针对学习过的模块给做一个扩展,模块的概念,Python中的模块是什么?在Python中,每一个独立的源文件就是一个模块儿, 文件的文件名,就是模块的名称,同时, 模块名同样也是一个标识符,因此在给文件起名的时候,必须要符合标识符的命名规则.

标识符的命名规则有 ,必须以数字, 字母和下划线组成,同时标识符不能以数字开头, 因此啊,给Python的源文件起名的时候,必须要符合标识符的命名规则.

模块就好比一个工具包, 模块可以向外界提供工具,那在模块中可以向外界提供哪些工具呢?现在学习的全局变量也好,函数也好,类也好,都是由模块可以向外界提供的工具.

在其他的位置想要使用模块中的工具应该先要导入这个模块,之前我们学习了使用import的这种方式可以导入一个模块,在import后面跟上模块的名称就可以.

如果希望一下导入多个模块,可以在import关键字后面,跟上多个模块的名称, 并且使用逗号进行分隔,

但是注意这种方式是不推荐使用的,因为按照PEP-8, Python的编码规范要求,在导入模块的时候,每一个模块都应该独占一行. 也就是如果需要导入多个模块,应该按照下方这种写法, 虽然可以使用import一次性导入多个模块,但是注意PEP-8要求在导入模块时, 每一个导入都应该独占1行,这个是导入模块的语法.

当导入了一个模块之后,怎么样可以使用到模块中的工具啊,可以使用模块名点的方式, 就可以使用到模块中提供的工具了,而模块向外界提供的工具,包括有全局变量, 函数以及类.

 

准备了一个测试模块1,在这个文件中准备了一个全局变量title,定义了一个say_hello的函数,定义了一个狗类Dog().

然后呢,还准备了一个测试模块2,测试模块2中定义了一个全局变量title,一个函数say_hello以及一个猫类Cat().

现在就把文件切换到import导入模块,

导入这两个模块,并且使用模块中提供的工具,老师先使用import关键字来导入hm01_测试模块1,然后再使用import关键字来导入hm02_测试模块2,两个模块导入之后,就可以直接使用模块中提供的工具了.

 

譬要调用模块1中的say_hello()方法,就可以先选中模块的名字,然后敲一个点,再选中,

 两个函数调用完成,先来执行一下程序,控制台输出,我是模块1,我是模块2,

 一个是模块1中的say_hello()方法,一个是模块二中的say_hello()方法.

再来尝试一下使用模块1中定义的的类来创建一个狗对象,在使用模块二中定义的类来创建一个猫对象.

先来创建一个狗对象,使用模块1中定义的狗类来创建一个对象,狗对象创建完成,就使用print函数把狗对象做个输出,

 

紧接着在使用模块2中定义的猫类来创建一个猫对象,猫对象创建完成,

 

再执行一下程序走,控制台输出了狗对象所在的内存地址以及猫对象所在的内存地址.

 

hm_01_测试模块1

# hm_01_测试模块1
# 全局变量
title = "模块1"

# 函数
def say_hello():
    print("我是 %s" % title)

# 类
class Cat(object):
    pass


hm_02_测试模块2

# hm_02_测试模块2
# 全局变量
title = "模块2"

# 函数
def say_hello():
    print("我是 %s" % title)

# 类
class Cat(object):
    pass

hm_03_import导入模块

# hm_03_import导入模块
import hm_01_测试模块1
import hm_02_测试模块2

hm_01_测试模块1.say_hello()
hm_02_测试模块2.say_hello()

dog = hm_01_测试模块1.Dog()
print(dog)

cat = hm_02_测试模块2.Cat()
print(cat)

2.import 导入时指定别名

在开发时,如果某一个模块的名称太长或者非常不好识别,在导入模块的时候呢,就可以使用as这个关键字,给模块起个别名,所谓别名啊,就是给这个模块起个好记忆的名字,这样呢可以方便后续的代码编写来.

先看一下语法,要给模块起别名,同样使用import关键字,同样来指定要导入的模块名,然后呢,在模块名后面跟上一个as关键字,在as后面来指定一下模块的别名就可以, 指定了别名之后,如果在下方的代码再想访问的模块中提供的工具,就可以直接通过好记忆的别名来访问.

 

而不再需要通过不好记的模块名来访问了,这个就是模块别名的好处以及定义的方式,同时注意在给模块起别名的时候,模块的别名应该符合大驼峰命名法.

所谓大驼峰命名法,就是每一个单词的首字母应该大写,单词与单词之间不需要下划线,这个就是大驼峰命名法.

现在这份代码在阅读的时候,有一种怪怪的感觉,这个模块名既有字母,又有数字还有中文,唉,这种代码在阅读的时候会让人有一种非常奇怪的感觉.

 

通过模块的别名来改善一下代码的质量,仍然使用import关键字来导入一下测试模块1, 现在老师就写上as这个关键字,给测试模块1起个别名,测试模块1中定义了一个狗类,因此啊给他起个DogModule的别名, 狗模块.

 

导入一下测试模块2,现在再给他起个别名,CatModule,因为在测试模块二中提供了一个猫类,现在导入两个模块的时候, 分别指定了一个狗模块和猫模块的别名,那现在就来通过别名访问一下模块中提供的工具.如果要调用函数,就敲一个DogModule然后点,然后来找一下say_hello这个方法.

 

两个函数调用完成,先来执行一下, 我是模块一,我是模块2, 同样可以输出. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值