Java转Python之函数、模块和异常处理
来源:互联网 发布:淘宝官方企业店是什么 编辑:程序博客网 时间:2024/06/05 11:38
函数
声明方式与JS类似,声明的关键字由function改成def,用大括号改成缩进方式来限定范围。
参数的赋值可以用关键字方式,这个是Java不具备的,有点像Spring Cloud Feign中按关键字传值那样(当然Java那种按照顺序的传参格式Pythone也是可以支持的),Python对Lambda的支持,用过jdk1.8的话并不陌生。
sum = lambda a,b:print('a:%d b:%d a+b=%d' %(a,b,a+b))x=8y=1sum(x,y)sum(b=x,a=y)
执行结果:
a:8 b:1 a+b=9a:1 b:8 a+b=9
在声明函数时,可以给参数设置默认值,也支持不定长度参数,与Java中一样
def defaultValue(a=1,*others): print(a) print(others)x=8list=[1,'hello']defaultValue(x,list)defaultValue()
8([1, 'hello'],)1()
python中函数内可以读写局部变量,只可以读成员变量,如果要修改成员变量需要在函数体内通过global关键字声明一下
param1= 'global'def memory1(): #global param1 param1 = 'globalnew' print(param1) print(locals()) print(globals())def memory2(): print(param1)memory1()memory2()
执行结果:
globalnew{'param1': 'globalnew'}{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000022E28D0B8D0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/python/work/untitled/venv/function/myTow.py', '__cached__': None, 'param1': 'global', 'memory1': <function memory1 at 0x0000022E28C12E18>, 'memory2': <function memory2 at 0x0000022E28D04598>}global
模块:
语法上跟Java一样,想调用哪个java类中的方法就要先import进来那个文件,然后调用时“模块名.函数名”的方式来调用。但是有一点一定要注意,python里的import更像是JS中脚本的拼接,也就是说被import的python脚本中如果自带自动执行的代码那么import后该代码会自动执行,这个跟java略有区别,java中的逻辑都在方法体内,方法不被调用,逻辑就不会执行。
Python执行模块的部分导入,这个是Java不具备的,语法格式
From模块名 import函数名
实测中发现部分import的函数如果调用到其它函数,会被自动import进来,这块比较省心。
Python也有Java中package的概念,用法也一样,通过包名来划分功能模块,通过包名的不同来区分相同模块名的不同功能。
异常处理:
Python中对异常的处理使用try/except语句,对于异常的原理和传递与Java一样,也有finally,
例子:
def sum (a,b) : try: c=a+b except TypeError as e: print('类型不匹配 %s' %e) except: print('其它异常') else: print('执行成功') print(c) finally: print('finally')sum(3,'3')sum(3,3)
执行结果:
类型不匹配 unsupported operand type(s) for +: 'int' and 'str'finally执行成功6finally
通过例子需要注意,else中是可以访问的到try中的局部变量的,这一点跟java略不一样。
Raise关键字就像java中的throws一样可以手动抛出异常,也可以通过继承RuntimeError来自定义异常。
class MyError(RuntimeError): def __init__(self, *args, **kwargs): self.args=argstry: raise MyError('Exception')except MyError as e: print(e)
- Java转Python之函数、模块和异常处理
- python之文件读写和异常处理
- Python 和 Java 异常处理对比
- urllib2模块之异常处理
- python之异常处理
- Python之异常处理
- Python之异常处理
- Python之异常处理
- Python异常和异常处理
- Python之基本语法join函数,模块处理
- python异常处理、模块的使用、__all__的调用、模块的发布和安装
- python 学习之二次函数求解以及异常处理
- python urllib2 模块异常处理方法
- python的Socketserver模块使用,异常处理
- # python学习笔记(二)--函数和异常处理
- JAVA异常之异常处理
- Python基础:数据类型、变量定义、输入/输出、逻辑、函数/模块(导入)/类、异常处理
- python基础2 (函数,模块,文件I/O,异常处理)
- Android-实现电话自动接听/电话自动挂断功能
- Docker的基础使用
- Java基础-双色球摇号程序
- L2-001. 紧急救援
- Mysql常用语法总结
- Java转Python之函数、模块和异常处理
- Unity移动端性能优化
- spring 核心与源码解析(3):AOP如何使用
- Dubbo引用服务null值问题
- No symbol directories found
- LeetCode之Count Binary Substrings(Kotlin)
- 2017/12/16
- Bootloader過程簡介
- Sql Server 2012 中文软件和安装教程