python 强类型参数_Python强类型?

Python是强大的动态类型。

>强类型意味着值的类型不会突然改变。只包含数字的字符串不会奇迹般地成为一个数字,这可能发生在Perl中。每个类型的更改都需要显式转换。

>动态类型意味着运行时对象(值)具有类型,而不是静态类型,其中变量具有类型。

至于你的例子

bob = 1

bob = "bob"

这是因为变量没有类型;它可以命名任何对象。在bob = 1之后,你会发现该类型(bob)返回int,但是在bob =“bob”之后,它返回str。 (请注意,type是一个常规函数,因此它会计算其参数,然后返回值的类型。)

与旧的方言C,它是弱,静态类型,使指针和整数几乎可以互换对比。 (现代ISO C在许多情况下都需要转换,但我的编译器默认情况下仍然宽松。)

我必须补充说,强对弱打字更像是一个连续体而不是布尔选择。 C具有比C更强的类型(需要更多的转换),但类型系统可以通过使用指针转换来破坏。

在诸如Python之类的动态语言中,类型系统的强大在于其原语和库函数如何响应不同类型。例如,是重载的,所以它工作在两个数字或两个字符串,但不是字符串和数字。这是一个设计选择,当实现时,但不是真正的必要性从语言的语义。事实上,当你重载一个自定义类型,你可以使它隐式转换任何东西到一个数字:

def to_number(x):

"""Try to convert x to a number."""

if x is None:

return 0

# more special cases here

else:

return float(x) # works for numbers and strings

class Foo(object):

def __add__(self, other):

other = to_number(other)

# now do the addition

(我知道的唯一一种完全强类型的语言,也就是严格的类型,是Haskell,其中类型是完全不相交的,只有通过类型类可以控制形式的重载。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值