抱歉,如果这对您来说算不上什么好事,但是在学习C++和Java之后,我才刚开始学习Python,而且我想知道在世界上如何仅声明id = 0name = 'John'这样的变量而无需任何intstring'在前面!我发现这也许是因为数字中没有',但是Python如何用def increase(first, second)之类的东西而不是C++中的int increase(int first, int second)的东西来解决这一问题?

最佳答案

您提到的文字对象当然会随身携带(指向;-)它们自己的类型,因此,当名称绑定(bind)到该对象时,就不会出现类型问题-该对象始终具有类型,名称不会-只需将其委托(delegate)给它绑定(bind)的对象即可。
def increase(first, second):中没有“弄清楚”-名称increase被绑定(bind)到功能对象,名称firstsecond被记录为参数名称,并在被称为increase时被绑定(bind)(很可能在不同点绑定(bind)到不同类型的对象)。

所以说主体是return first + second-对increase('foo', 'bar')的调用将很乐意返回'foobar'(将对象的加成(在这种情况下为字符串)委托(delegate)),也许以后再对increase(23, 45)的调用也将同样愉快地返回68-再次在调用点将附加的权限委派给绑定(bind)到这些名称的对象,在这种情况下为int。而且,如果使用不兼容的类型进行调用,您将得到一个异常,因为委托(delegate)加法操作无法理解这种情况,没什么大不了的!

关于python - Python如何区分不同的数据类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2445193/

10-12 21:42