python 将类型绑定到变量
我还是个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)
?