模块

模块

1 模块简介
  • 模块化是将一个完整的程序分解面一个个小的模块
  • 通过模块的组合来搭建一个完整的程序
  • 模块化的优点
    • 方便开发、维护
    • 可以复用
2 模块的创建
  • 在python中一个py文件就是一个模块

  • 在一个模块中引入外部模块 import 模块名(模块名就是py文件)

  • 可以引入同一个模块多次,但是模块的实例只会创建一次

    • # test.py
      print('这是我的第一个模块')
      # main.py
      import test
      import test
      import test
      # 调用了三次,只执行了一次   这是我的第一个模块
      print(test)
      # <module 'test' from '/study/python3.8.3/python基础/test.py'>
      
  • Import 模块名 as 模块别名

    • # test.py
      print('这是我的第一个模块')
      # main.py
      import test as t
      print(t)
      # 这是我的第一个模块
      # <module 'test' from '/study/python3.8.3/python基础/test.py'>
      
  • 在一个模块内部都有一个__name__.通过它可以获取模块的名字

  • 如果py文件直接运行时,那么__name__默认等于字符串’main’.

  • __name__属性值为__main__的模块是主模块。一个程序只有一个主模块

    • # test.py
      print(__name__)		# __main__
      # main.py
      import test
      print(__name__)
      # test
      # __main__
      
3 模块的使用
  • 访问模块的变量 语法: 模块名.变量名

    • # test.py
      a = 1
      b = 2
      # main.py
      import test
      print(test.a, test.b)
      
      # 1 2
      
  • 访问模块的函数 语法: 模块名.函数名

    • # test.py
      def test1():
          print('test1')
      def test2():
          print('test2')
      # main.py
      import test
      test.test1()
      test.test2()
      # test1
      # test2
      
  • 访问模块的对象 语法: 模块名.对象名

    • # test.py
      class Person:
          def __init__(self):
              self.name = '老大'
      # main.py
      import test
      p = test.Person()
      print(p.name)
      
      # 老大
      
  • 引入模块部分内容 语法: from 模块名 import 变量,变量,变量。。

    • # test.py
      a = 10
      def test1():
          print('test1')
      class Person:
          def __init__(self):
              self.name = '老大'
      # main.py
      from test import a,test1,Person
      print(a)
      test1()
      p = Person()
      print(p.name)
      
      # 10
      # test1
      # 老大
      
  • 取别名 语法: from 模块名 import 变量 as 别名

    • # test.py
      def test1():
          print('test1')
      # main.py
      from test import test1 as new_test1
      def test1():
          print('主模块中的test1')
      test1()         # 主模块中的test1
      new_test1()     # test1
      
  • 不希望引用的.py文件(模块)执行命令 有问题?

    • # test.py
      def test1():
          print('test1')
      test1()
      
      if __name__ == '__main__':
          test1()
          
      # main.py
      import test
      
      # test1
      
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值