python - 为什么我们在 Python 中从类创建对象时不必定义参数的类型?
问题描述
我是 Python 新手,我刚刚创建了一个课程,作为我正在学习的在线课程的一部分。
from math import sqrt
class Line:
def __init__(self,coor1,coor2):
self.coor1=coor1 #tuple (x1,y1)
self.coor2=coor2 #tuple (x2,y2)
def distance(self):
return sqrt((self.coor2[0]-self.coor1[0])**2+(self.coor2[1]-self.coor1[1])**2)
def slope(self):
return (self.coor2[1]-self.coor1[1])/(self.coor2[0]-self.coor1[0])
这是一个类Line
,可以帮助我找到两个坐标之间的距离。我想知道,既然坐标需要是一个元组,那么 Python 是如何知道这一点的?为什么我不需要在def __init__
?
解决方案
以下应该很好地解释为什么: https ://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language
TLDR:开发人员有责任确保您使用的数据类型适合该功能。由于 Python 是动态类型的,它会“知道”赋值时的数据类型。
Python 3.5+ 虽然引入了变量数据类型的声明(即类型提示):
def __init__(self, coord1: tuple, coord2: tuple):
# initialize
推荐阅读
- python - 填充之间的匹配数据
- sql - 我如何在sql中具有不同列名的多个不同表中一次搜索?
- firebase - 对 Id / Key 的 Firebase 集合组查询
- javascript - 使用 ajax jQuery 在 laravel 中创建时出现内部服务器错误 500,从 ajax 到控制器的变量格式错误
- jquery - 更新模型变量而不刷新页面 ASP.Net MVC RAZOR 页面
- datatables - Angular 7 和 jQuery 数据表触发事件
- java - @Pathvariable 的 UrlMapping 通配符
- html - 即使使用自动检查复选框,如何触发更改
- visual-studio - Visual Studio 2019 编辑器选项卡顺序已更改,而不是按字母顺序?
- javascript - 如何阻止导航栏在html中滚动时缩小