python 将类型绑定到变量

1 投票
2 回答
1964 浏览
提问于 2025-04-15 21:35

我还是个Python新手。

我创建了一个类,代码如下:

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的时候能绑定数据类型吗?

2 个回答

3

这段内容虽然不完全相关,但请注意:

class A(object):
    x = None

在这个上下文中,x 是一个类变量,而不是实例变量,它被每个实例共享。这个概念通常在博格模式中使用。

class A(object):
    def __init__(self, x):
        self.y = None
        self.x = x

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

6

不,Python中的变量没有类型——y并没有固定的类型。在任何时刻,y指向一个对象,而这个对象才有类型。比如:

y = ''

这段代码把y绑定到一个类型为str的对象上。你可以随时把它改成指向其他类型的对象。y本身并没有内在的类型。

想了解更多,可以看看Fredrik Lundh写的“重置你的思维”文章

顺便说一下,这段代码:self.y = t1.__init__(x)有点奇怪。你是不是想写self.y = t1(x)

撰写回答