1.方便开发并且方便维护 2.模块可以进行复用
在python中一个py文件就是一个模块, 在一个模块中引入外部模块可以引入同一个模块多次,但是模块只会执行一次
测试文件
import text print(text)# <一个模块的名字和指向的路径> 第二种:import 模块名 as 模块别名 text print(__name__)测试
import text as text_m print(text_m)# <一个模块的名字和指向的路径> # __name__:在每一个模块内部都有这个__name__我们可以通过这个获取模块的名字 # 如果这个模块直接运行,那么这个__name__默认的字符串__main__ 第三种:from 模块名 import 变量,变量,变量… 测试: from text import Person,text1,text2 #print(text) p1 = Person() print(p1) text1() text2()模块
a = 1 b = 2 # 在模块中定义函数 def text1(): print('text1') def text2(): print('text2') # 在模块中定义类 class Person: def __init__(self): self.name = '葫芦娃' p = Person() print(p.name) 第四种:from 模块名 import * 测试 from text import * text1() text2()模块
# 在模块中定义变量 a = 1 b = 2 # 在模块中定义函数 def text1(): print('text1') def text2(): print('text2') # 在模块中定义类 class Person: def __init__(self): self.name = '葫芦娃' p = Person() print(p.name)测试结果
葫芦娃 text1 text2 第五种:from 模块名 import 变量 as 别名 def text1(): print('主模块中的text1') from text import text1 as new_text1 text1() new_text1() # 在模块中定义变量 a = 1 b = 2 # 在模块中定义函数 def text1(): print('text1') def text2(): print('text2') # 在模块中定义类 class Person: def __init__(self): self.name = '葫芦娃' p = Person() print(p.name) 葫芦娃 主模块中的text1 text1测试
# 访问模块中的变量的语法: # 模块名.变量 import text print(text.a,text.b) # 访问模块中的函数的语法: # 模块名.函数 text.text1() text.text2() # 访问模块中的类 # 语法:模块名.对象名 p = text.Person() print(p.name)模块
# 在模块中定义变量 a = 1 b = 2 # 在模块中定义函数 def text1(): print('text1') def text2(): print('text2') # 在模块中定义类 class Person: def __init__(self): self.name = '葫芦娃' p = Person() print(p.name)测试结果
葫芦娃 1 2 text1 text2 葫芦娃 # 在模块中定义变量 a = 1 b = 2 c = 3# c是私有的,不希望去修改 # 在模块中定义函数 def text1(): print('text1') def text2(): print('text2') # 在模块中定义类 class Person: def __init__(self): self.name = '葫芦娃' p = Person() # 如果这个文件是主文件则执行下列代码 if __name__ == '__main__': # 以下是测试代码 print(p.name) text1() text2() 葫芦娃 text1 text2访问元素的一种方式,可以记住遍历位置的对象,迭代器也是从序列中第一个元素访问直到所有的元素被访问完结束
lst = [1,2,3,4,5,6,7] myiter = iter(lst) print(next(myiter)) print(next(myiter)) print(next(myiter)) print(next(myiter)) print(next(myiter)) print(next(myiter)) print(next(myiter)) 1 2 3 4 5 6 7 lst = [1,2,3,4,5,6,7] myiter = iter(lst) for i in myiter: # 迭代数据结构 print(i) 1 2 3 4 5 6 7在python中使用yield这个关键字我们就称为生成器函数或者生成器
生成器和普通函数的区别返回的是一个迭代器的函数,只用于迭代作用
def fn(): print(1) yield 11 print('2') yield 29 print('kjkjk') yield 90 yield 78 print(type(fn)) f = fn() print(type(f)) next(f) print('返回:',next(f)) print('返回:',next(f)) print('返回:',next(f)) <class 'function'> <class 'generator'> 1 2 返回: 29 kjkjk 返回: 90 返回: 78