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模块里 """
原文地址:https://www.cnblogs.com/jun1/p/9944416.html
时间: 2024-10-25 15:50:37