博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中的"-> "
阅读量:3785 次
发布时间:2019-05-22

本文共 911 字,大约阅读时间需要 3 分钟。

在一些源代码中会碰到类似下面的代码,比较复杂,看了一头雾水

def chain_transform(units: typing.List[Unit]) -> typing.Callable:    @functools.wraps(chain_transform)    def wrapper(arg):        """Wrapper function of transformations composition."""        for unit in units:            arg = unit.transform(arg)        return arg    unit_names = ' => '.join(unit.__class__.__name__ for unit in units)    wrapper.__name__ += ' of ' + unit_names    return wrapper

其中,@functools.wraps以及装饰器可参考。

对于->在c、c++中表示指针,在Python中通常应用于函数的后面,表示函数的返回类型,方便开发人员的开发,上面的这个例子中,返回类型比较复杂,我们可以改写一下,如下例子就容易理解了

def plug(num1: int,num2: int) -> int:    return num1 + num2print(plug(1,3))

在这个例子中,返回类型是int,同时,输入类型也做了限定为整型。虽然,在程序中,对方法输入的类型做了限定,但只限于提示开发人员方法的输入和输出类型是什么,方便开发,如果开发人员在输入中,并按不提示的类型输入,程序以及编译器依然不会报错,例如对上面的这个例子,执行下面输入

print(plug('1','2'))print(plug('a','b'))print(plug('hello',' world'))# 输出# 12# ab# hello world

运行上面的这三个代码,虽然输入是字符串类型,但是程序对输入类型做了转换,不受指定类型的限制,可以正常输出。

转载地址:http://dfktn.baihongyu.com/

你可能感兴趣的文章
java中String类中常用方法
查看>>
flutter学习笔记:第一个APP应用
查看>>
哲学家进餐问题
查看>>
Python-Opencv学习总结(一):图像读取和获取图像特征
查看>>
实验十三:导出与导入
查看>>
第十五周.
查看>>
基于MVC模式的用户登录
查看>>
Java Swing搭建QQ登录界面
查看>>
Spring常用依赖及注解的使用
查看>>
解决Maven中资源过滤问题
查看>>
Springboot中解决Ajax请求跨域问题
查看>>
Keras软件安装
查看>>
cuda安装
查看>>
Anaconda3换源配置
查看>>
Unsafe.putOrderedXXX系列方法详解(数组赋值的第二种方式)
查看>>
javase个人垃圾复习笔记05Java StringBuffer 和 StringBuilder 类
查看>>
牛客编程题(七)
查看>>
三种设计模式
查看>>
牛客编程题(八)
查看>>
牛客编程题(九)
查看>>