东莞工业品网站建设,做网站商城需要什么,企业网站制作公司合肥,潍坊 专业网站建设作者#xff1a;20岁爱吃必胜客#xff08;坤制作人#xff09;#xff0c;近十年开发经验, 跨域学习者#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者#xff0c;在CTF省赛校赛多次取得好成绩。… 作者20岁爱吃必胜客坤制作人近十年开发经验, 跨域学习者目前于海外某世界知名高校就读计算机相关专业。荣誉阿里云博客专家认证、腾讯开发者社区优质创作者在CTF省赛校赛多次取得好成绩。跨领域学习喜欢摄影、弹吉他、咏春拳。文章深入浅出、语言风趣爱吃必胜客社区创立者旨在“发现美 欣赏美 学习系列专栏 。 Python学习宝库 。 网络安全学习宝库 文章目录⭐️前言 做什么 类型提示举例☀️实际应用⭐️Type Hints是鸡肋一种是加注释更好一点的做法是用docstring来写 还有一种写法就是用Type Hint直接声明参数的类型☀️除了可以用在方法中也可以用在普通的变量上⭐️Type Hint的作用 如果是这样要它有何用它有两个用处⭐️总结我应该用吗 例子其他看法 我的故事⭐️前言
为什么我leecode官方python提示看不懂-,:这些符号是什么意思 python类型提示(type hint) 做什么
在刷leetcode或者一些官方源码的时候经常看到如下字样
class Solution:def sortList(self, head: ListNode) - ListNode:这就是类型提示(type hint) 类型提示举例
def greeting(name: str) - str:return Hello name
def greeting(name: str) - str:return Hello name如上其中name是传入的参数而:右边的str则是name期望的类型即str而-则指向期望函数的返回类型。
如果不期望有返回值可以直接指向None如下
def feeder(get_next_item: Callable[[], str]) - None:☀️实际应用
def goo(girlsname:str,tel:int)-bool:if girlsnamelisaand tel123456:return Truecgoo(lisa,123456)
print(c.__sizeof__(),c)⭐️Type Hints是鸡肋
定义一个这样的函数
def add(a, b): print(a b)看签名应该不难猜出这是做加法的把参数a和b加起来。a和b应该是两个数字或者两个字符串。但不能一个数字一个字符串。
如果我们的目的就是为了加数字最好能给一些说明。
为了实现这个目的有两种做法
一种是加注释
#把参数a和b相加a和b必须都是数字。
def add(a, b):print(a b)更好一点的做法是用docstring来写 docstring 网络 文档字符串文档字串文档字元串 However, I still cannot work up a great deal of enthusiasm for the function docstring style of parsers. 无论如何我仍然不能对函数文档字符串风格的解析器具有太多热情。 def add(a, b):把参数a和b相加a和b必须都是数字。print(a b)还有一种写法就是用Type Hint直接声明参数的类型
#为了简单这里假设只能处理整数
def add(a:int, b:int) - int:print(a b)Type Hint是Python3.6开始引入的一种特性。
通过变量名变量类型的写法指定参数的类型通过**-返回值类型**的写法指定返回值的数据类型。
☀️除了可以用在方法中也可以用在普通的变量上
a:int #定义变量a并指定a是int类型
a 5
print(a)⭐️Type Hint的作用
有了Type Hint就可以做到类型安全了吗
并不是的下面的代码仍然能够成功运行
a:int
a 5
print(a)
a hello #把字符串赋值给a并不会有运行时错误
print(a)结合我前面讲add函数的脉络Type Hint的作用和注释是一样的就是另外一种注释手法而已并不会Python解释器产生任何影响。 如果是这样要它有何用它有两个用处
1.给代码的阅读者更明确的类型提示调用代码的时候传入错误类型的可能性会降低但完全靠自觉。
2.有了Type HintsIDE可以在写代码的过程中就给你一些类型提示这样可以更顺畅的写出安全的代码。
⭐️总结我应该用吗
大部分情况下没必要使用。知道就好。 如果写共用的类库可以考虑使用。仅仅是考虑也不一定要用。 我的理由是
人生苦短我用Python如果非要夹(Java)里夹气的你去用Java或者其他的强类型语言好了。 毕竟用了Type Hint之后代码看起来啰嗦多了而且也失去了Python动态类型的一些优势。 还有一个理由不加Type Hint也可以使用Mypy实现类似的效果。 我们来看几个常用的类库看看它们用不用。 例子 其他看法 可以看到List是来源于typing.List,而小写的list来源是class ‘list’ 我的故事 python学习之路任重而道远要想学完说容易也容易说难也难。 很多人说python最好学了但扪心自问你会用python做什么了 刚开始在大学学习c语言写一个飞行棋的小游戏用dos界面来做真是出力不讨好。 地图要自己一点一点画出来就像这样 | |
| |
|从此讨厌编程不想继续学下去。每次作业应付。
算法考试数据结构考试随便背代码只求通过。
最后呢我学会变成了吗只能对一些概念侃侃而谈但真的会几行代码能写出实用工具吗
答案变得模糊。
所以我们要从现在开始学好python不要再糊弄下去