Python3新特性

一、类型注解

例子:

def add(x:int,  y:int)  ->  int:  
	return  x  +  y
解释: 类型`的形式指定函数的**参数类型**,用`-> 类型`的形式指定函数的**返回值类型

然后特别要强调的是,Python 解释器并不会因为这些注解而提供额外的校验,没有任何的类型检查工作。也就是说,这些类型注解加不加,对你的代码来说没有任何影响。 但这么做的好处是:

  • 让别的程序员看得更明白
  • 让 IDE 了解类型,从而提供更准确的代码提示、补全和语法检查(包括类型检查,可以看到 str 和 float 类型的参数被高亮提示)

在函数的__annotations__属性中会有你设定的注解:

def get_ip(network: str) -> str:
    return "127.0.0.1"


print(get_ip.__annotations__)
# {'network': <class 'str'>, 'return': <class 'str'>}

在 Python 3.6 中,又引入了对变量类型进行注解的方法:

a:  int  =  123  
b:  str  =  'hello'

更进一步,如果你需要指明一个全部由整数组成的列表:

from typing import List
l: List[int] = [1, 2, 3]

二、F-string

f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String Interpolation,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式.

from typing import Dict, List

name: str = "Hero"
age: Dict[str, int] = {"age": 19}
sex: List[str] = ["boy", "girl"]


class Chrome:
    version: float

    def __init__(self):
        self.version = 2.3


print(f"My Name is {name}")
print(f"i am {age} old")
print(f"sex is {sex[0]}")
print(f"chrome version is {Chrome().version}")

"""
result :
My Name is Hero
i am {'age': 19} old
sex is boy
chrome version is 2.3
"""

typing常用的类型:

  • int,long,float: 整型,长整形,浮点型;
  • bool,str: 布尔型,字符串类型;
  • List, Tuple, Dict, Set:列表,元组,字典, 集合;
  • Iterable,Iterator:可迭代类型,迭代器类型;
  • Generator:生成器类型;

猜你喜欢

转载自my.oschina.net/u/2474096/blog/2988005