前言
熟悉Python的朋友都知道,Python有一个让人又爱又恨的特点:数据类型的定义和使用非常的灵活。
在编写一个简易脚本的时候,这个特点让编程难度显著下降;但如果你需要编写一个大型程序,而且还需要多人协作时,没有类型定义的数据类型,真的让人崩溃!
也许Python的维护者也发现了这个问题,从Python3.5
开始加入了类型提示的功能,不仅能对基础数据类型提示,也可以对自定义的类进行提示。
今天我们就来一起学习一下。
提示方法
以下所有代码,都有上下2部分,它们的运行结果都是一致的,主要区别是:
- 上:未使用类型提示的代码
- 下:使用了类型提示的代码
1、变量
未使用类型提示的
name = '程序员晚枫'
fans = 24
使用了类型提示的
name: str = '程序员晚枫'
fans: int = 24
2、方法
未使用类型提示的
def info(name, fans):
return f'我的小破站是:{name},粉丝数是:{fans}'
使用了类型提示的
def info(name: str, fans: str) -> str:
return f'我的小破站是:{name},粉丝数是:{fans}'
3、集合
未使用类型提示的
dict_of_users = {
'小破站': "程序员晚枫",
'小红薯': "程序员晚枫",
'某乎': 1
}
使用了类型提示的
dict_of_users: dict[int, str | int] = {
'小破站': "程序员晚枫",
'小红薯': "程序员晚枫",
'某乎': 1
}
4、自定义的类
未使用类型提示的
class Account:
def __init__(self, name, fans):
self.name = name
self.fans = fans
def info(account):
return f'我的小破站是:{account.name},粉丝数是:{account.fans}'
使用了类型提示的
class Account:
def __init__(self, name: str, fans: int):
self.name = name
self.fans = fans
def info(account: Account) -> str:
return f'我的小破站是:{account.name},粉丝数是:{account.fans}'
写在最后
最后要提醒一下大家,以上所有提示,只是为了更好的编写和维护程序,而不是真正实现了数据类型定义的功能。
所以它们只对编写程序的人阅读代码时有用,对程序运行时来说是没有用的。