解决调用Spring注解式事务方法不生效的问题
看如下代码
1 |
|
方法 invokeInsertThenRollback()
调用一个有 @Transactional
注释的方法,这时,事务未生效。
有两种方法可以解决。
方法一,把自身 FooService 注入进来。
1 |
|
方法二,调用 AopContext.currentProxy()
获取代理类
1 |
|
看如下代码
1 | @Component |
方法 invokeInsertThenRollback()
调用一个有 @Transactional
注释的方法,这时,事务未生效。
有两种方法可以解决。
方法一,把自身 FooService 注入进来。
1 | @Component |
方法二,调用 AopContext.currentProxy()
获取代理类
1 | @Component |
Python 函数具有非常多的参数形态,刚开始接触时很多人不一定了解所有参数的含义。
这个很简单吧,跟其他语言都是一样的。
1 | # 可以设置多个位置参数 |
1 | # 若不知道股票名称时,可以将股票名默认为“股票” |
可变参数可以是0个到任意个,调用函数时,会自动将可变参数组装成元组
。可变参数的形式为 *args
。
1 | # 若不知道要存几天的收盘价 |
这里需要注意的是,如果是赋值语句:
1 | code, *list = '000001.SZ', '平安银行', '1987-12-22', '银行' |
这时,list就是一个list
类型的变量了。
和上面不同的是,调用函数时,会自动将关键字参数组装成字典。可变参数的形式为 **kws
。
1 | # 想要传入其他别的信息,比如公司成立日期、所属行业 |
用户想要输入的关键字参数,在关键字参数前加分隔符 *
,即*, nkw
,命名关键字不能缺少参数名。Python2貌似是不支持的。
1 | def stock_information(code, name='股票', *, industry): |
5种参数中的4种可以组合在一起使用,但组合有顺序。
位置参数、默认参数、可变参数、关键字参数
位置参数、默认参数、命名关键字参数、关键字参数
Python的基础数据结构有以下几种
1 | [] |
1 | () |
1 | {} |
{}
是空dict,{‘key’: ‘value’}
1 | dict(key = 'k', val = 'v') |
1 | {'a'} |
如果是空集合,是不能写 {}
的,{}
代表空dict。
空集合是 set()
1 | z = zip(['a', 'b'], [1, 2], [3, 4]) |