理解

理解 Python 中s可变参数的 *args 和 **kwargs

爷,独闯天下 提交于 2020-04-07 03:27:03
使用默认参数的可变参数 Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2): print 'Required argument: ', one print 'Optional argument: ', two test_defargs(1) # result: # Required argument: 1 # Optional argument: 2 test_defargs(1, 3) # result: # Required argument: 1 # Optional argument: 3 在函数定义时使用*args和**kwargs 当然,本文主要讲一种达到可变参数 (Variable Argument) 的方法:使用*args和**kwargs语法。其中,*args是可变的positional arguments列表,**kwargs是可变的keyword arguments列表。并且,*args必须位于**kwargs之前,因为positional arguments必须位于keyword arguments之前。 首先介绍两者的基本用法。 下面一个例子使用*args,同时包含一个必须的参数: def test_args(first, *args): print 'Required

react学习(1)-Why React?

牧云@^-^@ 提交于 2020-02-28 11:40:07
react出来好久了,留意了一下突然火了半边天。在下也只能随波逐流的来学习下了,希望能通过写博客的方式让自己坚持学习下去。 React是Facebook和Instagram用来创建用户界面的JavaScript库。很多人将React认为是MVC中的V。 React的创建是为了解决一个问题:如何构建一个数据交互频繁的大型应用程序 简单 在任何时候都能很不费劲的展现数据,并且当你的数据改变时,React会自动管理UI的更新。 声明的 当数据改变时,React就好像点击了更新按钮,并且只更新有改变的部分。 构建通用组件 React旨在构建通用组件。试试上,写React代码就是在构建组件。因为组件式封装的,所以组件使得代码的复用性、测试性和关注分离变得简单。 来源: oschina 链接: https://my.oschina.net/u/218583/blog/751471

理解 I/O-- 阻塞、非阻塞,同步、异步的概念及其区别

别等时光非礼了梦想. 提交于 2019-12-15 19:59:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 概念介绍 阻塞( blocking )、非阻塞( non-blocking ):可以简单理解为需要做一件事能不能立即得到返回应答,如果不能立即获得返回,需要等待, 那就阻塞了(进程或线程就阻塞在那了,不能做其它事情),否则就可以理解为非阻塞(在等待的过程中可以做其它事情)。 同步( synchronous )、异步( asynchronous ): 你总是做完一件再去做另一件,不管是否需要时间等待,这就是同步(就是在发出一个功能 调用时,在没有得到结果之前,该调用就不返回,即此时不能做下一件事情);异步则反之,你可以同时做几件事,并非一定需要一件事做 完再做另一件事(当一个异步过程调用发出后,调用者不能立刻得到结果,此时可以接着做其它事情)。同步简单理解成一问一答同步进行, 异步可以简单理解为不必等一个问题有了答案再去问另一个问题,尽管问,有答了再通知你。 阻塞和同步: 有人会把阻塞调用和同步调用等同起来,实际上他是不同的。 对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数 没有返回而已 。 例如,我们在socket中调用recv函数,如果缓冲区中没有数据,这个函数就会一直等待,直到有数据才返回。而此时,当 前线程还会继续处理各种各样的消息。 IO模型 针对网络IO的操作,可以分成 两个阶段

lombok 简化java代码注解 理解

[亡魂溺海] 提交于 2019-11-27 13:17:46
lombok 注解: lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。 Lombok 注解在线帮助文档: http://projectlombok.org/features/index. 下面介绍几个我常用的 lombok 注解: @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法 @Setter :注解在属性上;为属性提供 setting 方法 @Getter :注解在属性上;为属性提供 getting 方法 @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象 @NoArgsConstructor :注解在类上;为类提供一个无参的构造方法 @AllArgsConstructor :注解在类上;为类提供一个全参的构造方法 下面是简单示例 1.不使用 lombok 的方案 1 2public class Person { 3 4 private String id; 5 private String name; 6 private String identity; 7 private Logger log = Logger.getLogger(Person.class); 8 9 public Person() {