python将类型绑定到变量

python bind a type to a variable

我是一个Python。

我创建了一个类,如下所示:

1
2
3
4
5
6
7
8
9
10
11
class t1:
    x = ''
    def __init__(self, x):
        self.x = x

class t2:
    y = ''
    z = ''
    def __init__(self, x, y, z):
        self.y = t1.__init__(x)
        self.z = z

现在,与C++或Java相反,在编写类定义时,我不将数据类型绑定到Y。这仅仅是因为构造函数代码显示Y是T1类型。在声明y时我们可以绑定数据类型吗?


不。python中的变量没有类型-y没有类型。在任何时候,y表示一个对象,该对象有一个类型。这是:

1
y = ''

y绑定到str类型的对象。稍后您可以更改它以引用不同类型的对象。y本身没有内在类型。

请参阅Fredrik Lundh优秀的"重置你的大脑"文章以获得进一步的解释。

(顺便说一下,这个:self.y = t1.__init__(x)是一段相当奇怪的代码。你的意思是说self.y = t1(x)吗?


超出范围,但请注意:

1
2
class A(object):
    x = None

在此上下文中,x是一个类变量,而不是实例变量,由每个实例共享。它通常用于伯格模式。

1
2
3
4
class A(object):
    def __init__(self, x):
        self.y = None
        self.x = x

这里,self.y和self.x是实例变量。