Python 中数据类型的问题
Python是一种动态类型编程语言,变量的类型是在运行时分配的,无需在赋值之前定义特定类型。
a = 5
变量 a
被赋值为 5,在此之前,无需声明 a
存储整数,直接将 5 赋值给 a
。
def add(a, b):
return a+b
print(add(4, 5)) # 9
print(add(4.0, 5.0)) # 9.0
print(add('hi', 'world')) # hiworld
print(add([1,2], [3,4])) # [1, 2, 3, 4]
add
接收两个变量 a
和 b
并返回 a+b
。但 a
和 b
应该是什么数据类型呢?
如果我们输入整数,就会得到一个整数 如果传入浮点数,我们得到一个浮点数 如果传入字符串,我们得到一个字符串 如果我们传入列表,我们得到一个列表
Python并不在乎你传入a
和b
的参数。如果出现错误,你需要自己解决。尽管如此,类型提示可能会有所帮助。
类型提示介绍
在 Python 中,类型提示是可选的。如果不使用它们,Python 也能正常运行。然而,对于其他开发者来说,类型提示能让我们的代码更易读。
def add(a: int, b: int) -> int:
return a + b
在 a
和 b
后面加上 : int
,在函数结尾 )
后面加上 -> int
是类型提示,指示函数的参数和返回类型。
a
应该是整数b
也应该是一个整数函数的返回值也应该是整数
类型提示并非强制数据类型,而是为了提示而存在的,这一点需要注意。
def add(a: int, b: int) -> int:
return a + b
print(add(4, 5)) # 9
print(add(4.0, 5.0)) # 9.0
print(add('hi', 'world')) # hiworld
我们可以在 a
和 b
中传递浮点数或字符串,Python 不限制,允许代码运行。类型提示的主要目的是指导其他开发者阅读我们的代码时,明确数据类型应当为何。
类型提示的一些优势
开发人员能够迅速确定函数或方法应使用的数据类型 其他开发人员能够快速了解函数或方法应返回的数据类型 减少了变量数据类型的猜测和确认的时间 提高了代码的整体可读性
尽管类型提示是可选的,但它是编写优秀可读代码的必备条件。
虽然仅仅使用类型提示并不能让代码变得优秀
基础类型提示
a: int = 5
# a should be an integer
变量类型提示
def avg(a:int, b:int) -> float:
return (a+b)/2
函数类型提示
a
和b
应为整数函数应返回浮点数值
复杂类型的类型提示
但如果我们有一个整数列表呢?不用担心,内置的 typing
模块提供了一些有用的类型提示功能。
from typing import List
def average(numbers: List[int]) -> float:
return sum(numbers)/len(numbers)
numbers
应是一个整数列表。
from typing import Dict
def count(d: Dict[str, int]) -> int:
# stuff
d
应该是一个字典,其中键是字符串,值是整数。
class Dog:
pass
from typing import List
def magic(dogs: List[Dog]) -> int:
# stuff
dogs
应该是一个包含自定义 dog
对象的列表。
1、操作系统是如何实现的:宏内核 VS 微内核 2、阿里云服务器翻车!竟然是共享带宽的 3、为什么不让程序员直接对接客户,而是通过产品经理? 4、阿里玉伯:我大概能经历前端程序员从诞生到消亡的全过程 5、吹哨人之死:26岁OpenAI举报人离奇自杀,母亲心碎曝出惊人内幕! 点击关注公众号,阅读更多精彩内容