optional

浅谈 Python 的模块导入

亡梦爱人 提交于 2020-12-26 03:05:00
浅谈 Python 的模块导入 本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句相关的概念。通常,导入模块都是使用如下语句: import ... import ... as ... from ... import ... from ... import ... as ... 一般情况下,使用以上语句导入模块已经够用的。但是在一些特殊场景中,可能还需要其他的导入方式。例如 Python 还提供了 __import__ 内建函数和 importlib 模块来实现动态导入。动态导入的好处是可以延迟模块的加载,仅在用到模块时才支持导入动作。 运用 __import__ 函数和 importlib 模块固然能够实现模块的延迟加载,但其不足之处是,在任何需要用到指定模块的地方都要实现一遍同样的导入语句,这样是不便于维护且非常麻烦的。如果能够在顶层实现惰性导入,则是一个更好的选择,这也是本文最终要讨论的点。 在讨论一些高级用法之前,首先需要了解一下模块与包的概念。 模块与包 模块 可以理解为是 Python 可以加载并执行的代码文件,代码文件不仅可以是 .py 文件,还可以是 .so 等其他类型的文件。Python 只有一个 模块 对象型态,而且所有模块都是这个型态。为了便于组织多个模块并提供一个模块层次结构的命名,Python 提供了 包 的概念。

maven

眉间皱痕 提交于 2020-12-25 18:52:47
Settings.xml配置文件详解 maven默认的settings.xml是一个包含注释和例子的模板,可以快速的修改settings.xml文件 maven安装后不会在用户目录下自动生成settings.xml,一般是将/maven/conf下的settings.xml文件拷贝过去进行相应的修 <? xml version="1.0" encoding="UTF-8" ?> < settings xmlns ="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" >   <!-- 本地仓库的路径,默认值是~/.m2/repository -->  <localRepository>/path/to/local/repo</localRepository> <!-- maven是否需要和用户交互,默认值是true --> < interactiveMode >true</ interactiveMode >  <!--

Use Java 8 Optional in existing Java 7 code

会有一股神秘感。 提交于 2020-12-25 04:39:45
问题 I have an assignment in which I need to convert the following pre-Java 8 code to Java 8 code. Below is just one method which is giving me hard time to finish up: public static List<VehicleMake> loadMatching(Region region, String nameStartsWith, VehicleLoader loader) { if ((nameStartsWith == null) || (region == null) || (loader == null)) { throw new IllegalArgumentException("The VehicleLoader and both region and nameStartsWith are required when loading VehicleMake matches"); } List<VehicleMake

Use Java 8 Optional in existing Java 7 code

十年热恋 提交于 2020-12-25 04:39:05
问题 I have an assignment in which I need to convert the following pre-Java 8 code to Java 8 code. Below is just one method which is giving me hard time to finish up: public static List<VehicleMake> loadMatching(Region region, String nameStartsWith, VehicleLoader loader) { if ((nameStartsWith == null) || (region == null) || (loader == null)) { throw new IllegalArgumentException("The VehicleLoader and both region and nameStartsWith are required when loading VehicleMake matches"); } List<VehicleMake

Regex optional capturing group?

馋奶兔 提交于 2020-12-24 15:20:50
问题 After hours of searching I decided to ask this question. Why doesn't this regular expression ^(dog).+?(cat)? work as I think it should work (i.e. capture the first dog and cat if there is any)? What am I missing here? dog, cat dog, dog, cat dog, dog, dog 回答1: The reason that you do not get an optional cat after a reluctantly-qualified .+? is that it is both optional and non-anchored: the engine is not forced to make that match, because it can legally treat the cat as the "tail" of the .+?

Regex optional capturing group?

佐手、 提交于 2020-12-24 15:20:39
问题 After hours of searching I decided to ask this question. Why doesn't this regular expression ^(dog).+?(cat)? work as I think it should work (i.e. capture the first dog and cat if there is any)? What am I missing here? dog, cat dog, dog, cat dog, dog, dog 回答1: The reason that you do not get an optional cat after a reluctantly-qualified .+? is that it is both optional and non-anchored: the engine is not forced to make that match, because it can legally treat the cat as the "tail" of the .+?

引导 ARM Linux

房东的猫 提交于 2020-12-19 18:09:30
引导 ARM Linux 本文翻译自:https://www.kernel.org/doc/html/latest/arm/booting.html 引导 ARM Linux 需要一个引导加载程序,它是一个先于内核运行的小段程序。引导加载程序被用于初始化各种设备,并最终调用 Linux 内核,同时给内核传递参数。 总之,引导加载程序需要提供一下几种功能: 设置和初始化内存 初始化一个串口 检测机器类型 设置内核标签列表 加载 initramfs 调用内核镜像 1. 设置和初始化内存 Existing boot loaders: MANDATORY New boot loaders: MANDATORY 引导加载程序用来查询和初始化所有内存,该过程是体系结构相关的。 2. 初始化一个串口 Existing boot loaders: OPTIONAL, RECOMMENDED New boot loaders: OPTIONAL, RECOMMENDED 引导加载程序应该在目标办上初始化和使能一个串口,这样可以使内核串口驱动自动地检测哪个串口可用于内核控制台。 另外,引导加载程序可以通过标记列表传递 'console=' 选项给内核指定端口,串口参数格式选项详见:Documentation/admin-guide/kernel-parameters.rst 3. 检测机器类型

利用Idea重构功能及Java8语法特性——优化深层嵌套代码

吃可爱长大的小学妹 提交于 2020-12-19 04:39:04
当遇到深层嵌套代码,如for,if,lambda表达式或内部类及这些代码的组合,这时我们可以通过Java 8的语法特性来进行优化。 下面的代码是一个嵌套循环的示例。 public MappedField getMappedField( final String storedName) { for ( final MappedField mf : persistenceFields) { for ( final String n : mf.getLoadNames()) { if (storedName.equals(n)) { return mf; } } } return null ; } 重构1: 嵌套的for/if语句通畅可以通过Java 8中的stream来替代。 Optional<String> found = persistenceFields.stream() .flatMap(mappedField -> mappedField.getLoadNames().stream()) .filter(storedName::equals) .findFirst(); 上述重构代码会返回Optional,但笔者希望返回mappedField对象,再次改造后的代码如下。 persistenceFields.stream() .filter(mappedField -> {

控制台+Owin搭建WebAPI接口服务

穿精又带淫゛_ 提交于 2020-12-17 01:20:28
  当没有iis环境、想快速启动几个api接口测试又觉得新建一个api项目麻烦?来使用控制台做宿主,快速改几个api测试吧!   1.新建控制台项目   2.安装以下相关依赖   Microsoft.AspNet.WebApi   Microsoft.AspNet.WebApi.Owin   Microsoft.Owin.Hosting   Microsoft.Owin.Host.HttpListener   3.新建API控制器,需要注意一下几点约定   >控制器放在文件夹Controllers下(没有新建一个)   >控制器继承自ApiController   >控制其名称符合“名称+Controller”规范   比如:      其它与WebAPI的写法一致即可   4.新建StartUp类--根目录新建StartUp.cs    1 public class Startup 2 { 3 public void Configuration(IAppBuilder appBuilder) 4 { 5 HttpConfiguration config = new HttpConfiguration(); 6 7 config.Routes.MapHttpRoute(name: " DefaultApi " , 8 routeTemplate: " api/{controller

Springboot+shiro+md5(配置类配置)

筅森魡賤 提交于 2020-12-16 12:53:57
一.导入依赖包 <!--spring boot 默认lettuce连接redis的技术--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--邮件--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <!--jdbc依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--前端模板引擎依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--springmvc-->