面向对象的模块

    科技2022-07-10  154

    模块

    模块的简介

    模块化 模块化:将一个完整的程序分解成一个一个小的模块模块化的优点:

    1.方便开发并且方便维护 2.模块可以进行复用

    在python中一个py文件就是一个模块, 在一个模块中引入外部模块

    可以引入同一个模块多次,但是模块只会执行一次

    模块的引入的写法

    第一种:import 模块名(模块名就是python的文件名) text print('这是我的第一个模块')

    测试文件

    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
    Processed: 0.020, SQL: 8