Python3新特性 类型注解 以及 点点点

Python3新特性 类型注解 以及 点点点 ...

  • Python3 的新特性
  • Python 是一种动态语言,变量以及函数的参数是 不区分类型
  • 在 函数中使用类型注解 相当于 给 形参的 类型 设置了一个备注
    # 使用类型注解  a  b  参数需要 int 类型的 变量
    def func(a: int = ..., b: int = ...):
        return a + b
  • 使用 PyCharm 编写python代码时 函数调用会有默认参数的 提示
  • 如果传递的 参数不是 指定的类型 正常使用也不会报错的 但是 传参时会有阴影 提示
def func(a: int = ..., b: int = ...):
    return a + b

c = func(1, 2)
>>  3

st = func(‘a‘, ‘b‘)
>> ab

a: int = ... 就是给 a 设置的默认值

def func(a: int = ...):
    print(a)   # Ellipsis

func()

def func(a: int = 12345):
    print(a)   # 12345

func()  

>> ...

  • 使用Python3 新特性 ... (Ellipsis)
  • 用法 跟 pass 类似 但是pass 不可以 指定 为函数的 默认值
    print(...)  # Ellipsis
  • 可以 替换 pass 来使用
# 不会报错
def func():
    ...
  • ... 是一个固定的类型

    aa = ...
    print(type(aa))   # <class ‘ellipsis‘>
    
    print(id(...))  # 1720402224
    

原文地址:https://www.cnblogs.com/zhang-zi-yi/p/10306698.html

时间: 2024-11-05 19:28:40

Python3新特性 类型注解 以及 点点点的相关文章

spring4.0.6最新稳定版新特性学习,注解自动扫描bean,自动注入bean(二)

Spring4.0的新特性我们在上一章已经介绍过了.包括它对jdk8的支持,Groovy Bean Definition DSL的支持,核心容器功能的改进,Web开发改进,测试框架改进等等.这张我们主要介绍spring4.0的自动扫描功能,以及对bean的过滤等特性进行学习. 好吧,废话少说,我们来看看代码吧. package com.herman.ss.test; import org.springframework.context.ApplicationContext; import org

JDK1.5新特性之注解

时间:2017-1-2 20:14 --注解的概述 注释是给人看的,而注解是给程序(框架)看的.    在Servlet3.0中可以使用注解来替代配置文件,开发者就不用再写配置文件了,而是写注解,然后Tomcat来读取注解. 注解也是类,需要定义了才能使用.    在Servlet3.0中又一个注解类是@WebServlet,然后我们就可以在Servlet中使用@WebServlet这个注解了,这个朱姐就是用来替代<servlet>,然后Tomcat会通过反射来读取注解中的信息. --Java

Java8新特性 重复注解与类型注解

import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import static java.lang.annotation.ElementType.*; @Repeatable(MyAnnotations.class) @Target

[Java5新特性]Annotation注解

Annotation概述 Annotation是JDK 5.0以后提供对元数据的支持,可以在编译.加载和运行时被读取,并执行相应的处理.所谓Annotation就是提供了一种为程序元素设置元数据的方法,可用于修饰包.类.构造器.方法.成员变量.参数和局部变量的声明,这些信息被存储在Annotation的"name=value"对中. Annotation能被用来为程序元素(类.方法.成员变量等)设置元数据,比如一段代码的作者或者告诉编译器禁止一些特殊的错误,不会影响代码的执行. 基本A

Servlet新特性:注解

参考: http://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的.如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持,具体请看后文关于 可插性支持的讲解):如果不

python3 新特性

1.格式化字符串f-string user = "Mike" log_message = f'User{user} has logged in' 2.路径管理库Pathlib 3.类型提示Type hinting def sentence_has_animal(sentence:str) -> bool: return "animal" in sentence 4.枚举类enum from enum import Enum, auto, unique @uni

servlet3.0 的新特性之二注解代替了web.xml配置文件

servlet3.0 的新特性: 注解代替了 web.xml 文件 支持了对异步的处理 对上传文件的支持 1.注解代替了配置文件 1.删除了web.xml 文件 2. 在Servlet类上添加@WebServlet(urlPatterns={"/AServlet"}) 3. 在Filter类上添加@WebFilter(urlPatterns="/AFilter") 4. 在Listener类上添加@WebListener ? 总结: * 注解好处:配置信息少,使用很

Java 8的类型注解:工具和机会

在以前的Java版本中,开发者只能将注解(Annotation)写在声明中.对于Java 8,注解可以写在使用类型的任何地方,例如声明.泛型和强制类型转换等语句: @Encrypted String data;List strings;myGraph = (@Immutable Graph) tmpGraph; 乍一看,类型注解并不是Java新版本最炫的特性.事实上,注解只是语法!工具决定了注解的的语义(即,它们的含义和行为).本文介绍新的注解语法和实用工具,以提高生产力和构建更高质量的软件.

Java 8 新特性:扩展注解(类型注解和重复注解) ——诺诺&quot;涂鸦&quot;记忆

----------   诺诺学习技术交流博客.期待与您交流!    ---------- 详情请查看:http://blog.csdn.net/sun_promise  注解 (注:先回顾下JDK1.5版本出现的注解 ,然后再解释JDK 8的注解 更新内容.) 一.注解(JDK1.5) 1.注解(@): 注解就相当于一种标记,在程序中加了注解就等于为程序加了某种标记.(JDK1.5新特性). 2.作用: 告诉javac编译器或者java开发工具--向其传递某种信息,作为一个标记. 3.了解注解