Python模块

本文详细介绍了Python中模块的概念,如何通过import导入并利用模块中的函数、变量和类。重点讲解了import方式、自定义导入限制及__all__关键字的作用,帮助读者理解模块组织和管理的重要性。
摘要由CSDN通过智能技术生成

模块

在python中,模块是代码组织的一种方式,把功能相近的函数放到一个文件中,一个文件(.py)就是一个模块(module),模块名就是文件名去掉后缀.py。这样做的好处是:
提高代码的可复用、可维护性,一个模块编写完毕后,可以很方便地在其他项目中导入
解决了命名冲突,不同模块中相同的命名不会冲突。

模块导入

导入模块后,使用模块中的东西
使用方法
模块名.函数
模块名:变量
模块名:类

自定义模块导入

import 方式导入

说明:这两个py文件在一个目录下。

cat calculate.py 
#!/usr/bin/env python3
#coding:utf8
def add(*args):
   if len(args) > 1:
      sum = 0
      for i in args:
         sum+=i
      return sum
   else:
      print("至少传入两个参数")


def minus(*args):
   if len(args) > 1:
      m = 0
      for i in args:
         m -= i
      return m
   else:
      print("至少传入两个参数")
     
cat calculate2.py 
#!/usr/bin/env python3
#coding:utf8
import calculate
list1=[1,3,5,7,9]

result=calculate.add(*list1)
print(result)

result=calculate.minus(*list1)
print(result)
[root@ceph01 python]# python3 calculate2.py 
25
-25

说明:这两个py文件在一个目录下。

cat calculate.py
#!/usr/bin/env python3
#coding:utf8
#变量
number=100
#函数
def add(*args):
   if len(args) > 1:
      sum = 0
      for i in args:
         sum+=i
      return sum
   else:
      print("至少传入两个参数")


def minus(*args):
   if len(args) > 1:
      m = 0
      for i in args:
         m -= i
      return m
   else:
      print("至少传入两个参数")
     

#类
class Calculate:
   def __init__(self,num):
      self.num=num
   def test(self):
      print('正在使用Calculate进行计算')
   @classmethod
   def test1(cls):
      print('Calculate中类方法')
cat calculate2.py
#!/usr/bin/env python3
#coding:utf8
import calculate
list1=[1,3,5,7,9]
#调用函数
result=add(*list1)
print(result)

result=minus(*list1)
print(result)

#调用变量
print(number)
#调用类
cal=Calculate(8)
cal.test()
#调用类方法
Calculate.test1()
python3 calculate2.py 
25
-25
100
正在使用Calculate进行计算
Calculate中类方法

from 模块名 import *方式导入

cat calculate.py
#!/usr/bin/env python3
#coding:utf8
#变量
number=100
#函数
def add(*args):
   if len(args) > 1:
      sum = 0
      for i in args:
         sum+=i
      return sum
   else:
      print("至少传入两个参数")


def minus(*args):
   if len(args) > 1:
      m = 0
      for i in args:
         m -= i
      return m
   else:
      print("至少传入两个参数")
     

#类
class Calculate:
   def __init__(self,num):
      self.num=num
   def test(self):
      print('正在使用Calculate进行计算')
   @classmethod
   def test1(cls):
      print('Calculate中类方法')
cat calculate2.py
#!/usr/bin/env python3
#coding:utf8
from calculate import *
list1=[1,3,5,7,9]
#调用函数
result=add(*list1)
print(result)

result=minus(*list1)
print(result)

#调用变量
print(number)
#调用类
cal=Calculate(8)
cal.test()
#调用类方法
Calculate.test1()
[root@ceph01 python]# python3 calculate2.py 
25
-25
100
正在使用Calculate进行计算
Calculate中类方法

限制模块内可以导入的内容

在模块中使用__all__=[’’,’’]可以允许模块中哪些内容被导入,不被允许的就不能被导入。

cat calculate.py
#!/usr/bin/env python3
#coding:utf8
__all__=['number','add']
#变量
number=100
#函数
def add(*args):
   if len(args) > 1:
      sum = 0
      for i in args:
         sum+=i
      return sum
   else:
      print("至少传入两个参数")


def minus(*args):
   if len(args) > 1:
      m = 0
      for i in args:
         m -= i
      return m
   else:
      print("至少传入两个参数")
     

#类
class Calculate:
   def __init__(self,num):
      self.num=num
   def test(self):
      print('正在使用Calculate进行计算')
   @classmethod
   def test1(cls):
      print('Calculate中类方法')
[root@ceph01 python]# cat  calculate2.py 
#!/usr/bin/env python3
#coding:utf8
from calculate import *
list1=[1,3,5,7,9]
#调用函数
try:
   result=add(*list1)
   print(result)
except:
   pass
try:
   result=minus(*list1)
   print(result)
except:
   pass

#调用变量
try:
   print(number)
except:
   pass
#调用类
try:
   cal=Calculate(8)
   cal.test()
except:
   pass
##调用类方法
try:
   Calculate.test1()
except:
   pass
[root@ceph01 python]# python3 calculate2.py 
25
100

if name == ‘main’:

import执行时会加载模块内的东西到内存中,假如模块内有测试语句不希望被加载,可以使用if name == ‘main’:
在自己的模块中__name__等于__main__,如果在其他模块中通过导入的方式使用__name__等于模块名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值