Python教程10

Python教程10

  1.模块

    说明:前4个文件代码块分别是

error.jun_03_module1
# -*-coding:utf-8-*-
# 定义全局变量
title = "模块1"


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


#
class Dog(object):
    pass
error.jun_03_module2
# 全局变量
title = "模块2"


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


#
class Cat(object):
    pass
error.jun_03_module3
# -*-coding:utf-8-*-
# 全局变量
title = "模块3"


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


#
class Person(object):
    pass
error.jun_03_module4
# -*-coding:utf-8-*-
def say_hello():
    print("你好,你好,我是 say hello")


print("小明开发的模块")
say_hello()
print(__name__)  # 如果在本文件中执行则结果是__main__,在导入文件jun_o3_import_module执行结果就
# 是error.jun_03_module4(即此文件的模块名)

#正常开发测试模块处理:
if __name__=="__main__":
    print("本模块的测试,在导入文件里不会输出")
error.jun_03_import_module
# -*-coding:utf-8-*-
"""
模块:模块是python程序结构的一个核心概念
每一个扩展名py结尾的python源代码文件都是一个模块
模块名同样是一个标识符,需要符合标识符的命名规则
在模块中定义的全局变量,函数,类都提供给外界直接使用的工具
模块就好比是工具包,要使用这个工具包,就需要先导入这个模块
"""
# 模块导入示例:
# error是一个Python 包,jun_03_moduleX等是模块名
import error.jun_03_module1
import error.jun_03_module2 as Jun3  # 可以取别名,简化操作

error.jun_03_module1.say_hello()
Jun3.say_hello()

dog = error.jun_03_module1.Dog()
print(dog)

cat = Jun3.Cat()
print(cat)

"""
从一个模块中,导入部分工具,可以使用from ... import的方式
from 模块名 import 工具名
导入所有的工具:from 模块名 import * (不推荐使用)
导入后,不需要通过模块名.来调用函数,类或者全局变量,可以直接使用
"""
# 从error.jun_03_module3模块导入say_hello方法
# 注意如果是两个同名的函数或者类,全局变量等,采用此方法导入,后导入
# 的会替换先导入的,开发时导入代码建议在文件顶部

from error.jun_03_module3 import say_hello

# from error.jun_03_module3 import say_hello as module_say_hello 冲突可以取别名区分
say_hello()  # 直接使用,不需要模块名.来调用

# 模块的搜索顺序,
# 首先会在当前的工作目录下,搜索指定模块,不能找到,然后搜索系统目录(所以,建议命名模块名不要和系统模块名重名)
import random

rand = random.randint(0, 10)
print(rand)
print(random.__file__)  # 查看导入的random模块的位置

"""
开发中,每一个文件都应该可以被导入的。导入时,文件中所有没有任何缩进的代码都会被执行一遍!
"""
print()
print("导入时,文件中所有没有任何缩进的代码都会被执行一遍!测试。。。")
import error.jun_03_module4
print("-"*50)
"""
1.针对以上问题:开发中,如果文件有测试代码,而在导入文件中,不想执行原文件的测试代码(即没有缩进的
代码)可以采取__name__属性。
2.__name__时一个内置属性,记录着一个字符串,如果在导入文件里,__name__就是模块名,
如果在被导入文件里执行时__name__是__main__。这里我们写在error.jun_03_module4模块里
"""

猜你喜欢

转载自www.cnblogs.com/jun1/p/9944416.html