首页 > 解决方案 > 为什么我们在 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__?

标签: pythonclassobjectdynamic-typing

解决方案


以下应该很好地解释为什么: 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

推荐阅读