python开发_python中的module
在python中,我们可以把一些功能模块化,就有一点类似于java中,把一些功能相关或者相同的代码放到一起,这样我们需要用的时候,就可以直接调用了
这样做的好处:
1,只要写好了一个功能模块,就可以在以后调用,代码的重用就可以体现出来了
2,功能写好了以后,不会发生错误。如果一个相同的功能,我们在一个模块中写了一遍,在另外的模块中又写了一遍......这样我们难免保证我们在写的过程中不发生错误。
但是我们如果能够写一个功能模块写好了以后,就把他用在很多地方,其一,用起来方便,其二,可以保证其正确性
3,代码共享
说了这么多,还是来点实际的比较好!!!
我们新建一个文件:fibo.py(当然这个名字可以随个人意愿)
1 #Modules 2 3 def fib(n): # write Fibonacci series up to n 4 a,b = 0,1 5 while b < n: 6 print(b,end=' ') 7 a,b = b, a + b 8 print() 9 10 def fib2(n): # return Fibonacci series up to n 11 result = [] 12 a,b = 0,1 13 while b < n: 14 result.append(b) 15 a,b = b, a + b 16 return result 17 18 def add(numberA,numberB): #定义加法 19 return numberA + numberB 20 21 def sub(numberA,numberB): #定义减法 22 return numberA - numberB 23 24 def mul(numberA,numberB): #定义乘法 25 return numberA*numberB 26 27 def div(numberA,numberB): #定义除法 28 if numberB != 0: 29 return numberA//numberB 30 else: 31 return 'Error'
上面就是我们自定义的一个简单的功能模块,里面定义了一些方法。
我们需要在:test_modules.py(和fibo.py文件在同一个目录的另一个文件)文件中调用fibo.py中的方法:
1 import fibo 2 3 fibo.fib(1000) 4 result = fibo.fib2(1000) 5 print(result)
运行效果:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] >>>
现在我们又定义了一个文件:
test_modules1.py调用fibo.py中的部分方法
1 from fibo import fib,fib2 2 3 #这里是可以直接使用以上两个方法的 4 fib(100) 5 6 result = fib2(1000) 7 print(result)
上面描述的是,我们应用了fibo.py文件中的fib,fib2两个方法
运行效果:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> 1 1 2 3 5 8 13 21 34 55 89 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987] >>>
如果我们要应用fibo.py中的所有方法,我们可以这样做:
1 #应用fibo.py中所有的方法 2 #有一点类似于java中的引入包的形式 3 from fibo import * 4 5 #这里可以使用fibo中的所用方法 6 7 fib(1000) 8 9 print(fib2(100)) 10 numberA = 20 11 numberB = 5 12 13 print('加法计算:',numberA,'+',numberB,'=',add(numberA,numberB)) 14 print('减法计算:',numberA,'-',numberB,'=',sub(numberA,numberB)) 15 print('乘法计算:',numberA,'*',numberB,'=',mul(numberA,numberB)) 16 print('除法计算:',numberA,'/',numberB,'=',div(numberA,numberB))
运行效果:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 加法计算: 20 + 5 = 25 减法计算: 20 - 5 = 15 乘法计算: 20 * 5 = 100 除法计算: 20 / 5 = 4 >>>