抱歉,如果这对您来说算不上什么好事,但是在学习C++和Java之后,我才刚开始学习Python,而且我想知道在世界上如何仅声明id = 0
和name = 'John'
这样的变量而无需任何int
或string
'在前面!我发现这也许是因为数字中没有'
,但是Python如何用def increase(first, second)
之类的东西而不是C++中的int increase(int first, int second)
的东西来解决这一问题?
最佳答案
您提到的文字对象当然会随身携带(指向;-)它们自己的类型,因此,当名称绑定(bind)到该对象时,就不会出现类型问题-该对象始终具有类型,名称不会-只需将其委托(delegate)给它绑定(bind)的对象即可。def increase(first, second):
中没有“弄清楚”-名称increase
被绑定(bind)到功能对象,名称first
和second
被记录为参数名称,并在被称为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/