面向对象编程——类型的注解

一.为什么需要类型注解?

1.类型注解的简介

        python在3.5版本的时候引入了类型注解,以方便静态类型检查工具,IDE等第三方工具。

类型注解是在代码中涉及数据交互的地方,提供数据类型的注解(显示的说明)。

2.类型注解的主要功能

·帮助第三方IDE工具(如pycharm)对代码进行类型推断,协助做代码提示

·帮助开发者自身对变量进行类型注解

二.变量的类型注解

1.写法一

基础语法: 变量:类型


 基础数据类型注解示例:

var_1:int = 10

var_2: flout = 3.1415926

var_3: bool = Ture

var_4: str = "itheima"

类对象类型注解示例:

class Student:
    pass

stu: Student = Student()

基础容器类型注解:

my_list: list = [1,2,3]
my_tuple: tuple = (1,2,3)
my_set: set = {1,2,3}
my_dict: dict = {"itheima": 666}
my_str: str = "itheima"

容器类型详情注解:

my_list: list[int] = [1,2,3]
my_tuple: tuple[str,int,bool] = ("itheima",666,True)
my_set: set[int] = {1,2,3}
my_dict: dict[str,int] = {"itheima":666}

注意:

·元组类型设置类型详细注解,需要将每一个元素都标记出来

·字典类型设置类型详细注解,需要2个类型,第一个是key第二个是value 

2.写法二 

基础语法:#type:类型

 在注释中进行类型注解:

class Student:
    pass

var_1 = random.randint(1,10)    #type: int
var_2 = json.loads(date)        #type: dict[str,int]
var_3 = func()                  #type: Student

3.什么时候需要使用类型注解呢? 

类型注释主要功能在于:

·帮助第三方IDE工具(如pycharm)对代码进行类型判断,协助做代码提示

·帮助开发者自身对变量进行类型注释(备注)

不会真正的对类型做验证和判断,也就是,类型注解仅仅是提示性的,不是决定性的。

var_1: int = "itheima"

var_2: str = 123

上面这两个代码并不会报错。

三.函数(方法)的类型注解

1.函数(方法)形参进行类型注解

基础语法:

def  函数方法名(形参名:类型,形参名:类型,......):

       pass

def add(x: int,y: int):
    return x + y

def func(date: list):
    pass

2.函数(方法)返回值进行类型注解

基本语法:

def  函数方法名(形参:类型,......,形参:类型) -> 返回值类型

       pass

def func(date: list) -> list:
    return date

def add(x: int, y: int) -> int:
    return x + y

def func(date: list[int]) -> list[int]:
    pass

四.Union类型

1.基本概念

        union类型用于拓展变量的可接收类型范围。比如:一个变量可以同时接收 int 或 str 类型的值。这有助于在需要处理多种数据类型时提供清晰的类型提示。

2.使用方法

基本语法:Union[ int , float ]                  这里是接收int或float类型。

from typing import Union

my_list: list[Union[str,int]] = [1,2,"itheima","itcast"]

my_dict: dict[str,Union[str,int]] = {"name": "周杰伦","age": 31}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俊昭喜喜里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值