Python 3.X中具有相同名称的类型和函数?

时间:2014-04-08 08:30:35

标签: python python-3.x types

据我所知,Python中没有声明类型。当你需要一个整数或列表时,你会这样做:

integer = 5
list_of_integers = [0, 1, 2]

文档的这个link告诉我Python中的int是一个内置函数。

我知道str()int()等函数将整数转换为字符串,反之亦然。

但我从未见过使用int作为带点符号的类型。 * INT。[函数名] *

为什么它既可以是类型,也可以是同名的函数?还有其他类型,例如floatdouble等可以与点表示法一起使用,还有函数吗?

2 个答案:

答案 0 :(得分:4)

intstr。与Python中的任何类一样,调用它会为您提供一个实例。和任何实例一样,你当然可以在其上调用方法。 int没有那么多用户可调用的方法,但str肯定会这样做:一些常见方法包括stripsplitupper等等。

>>> x = str()
>>> x.upper()
''

修改

它还是一堂课。您可以对任何类完全相同,甚至是您自己定义的类:

>>> class Foo(object):
...   def bar(self):
...     print self.baz
...
>>> f=Foo()
>>> f.baz = 'quux'
>>> f.bar()
quux
>>> Foo.bar(f)
quux

这里的最后一个操作与调用str.upper(x)

完全相同

答案 1 :(得分:0)

int和str不是函数。 它们基本上是数据类型,在python中实际上是包含它们自己的不同功能的类。 这就是为什么你可以使用str(int)方法将整数转换为字符串的原因,但你不能用int(string)将字符串转换为整数。 由于这些是类,可以说类中有不同的函数(方法),而这些函数(方法)又与点符号一起使用。