如何声明对象,而不是创建新对象?

时间:2015-10-16 10:31:01

标签: python python-2.7

我知道如何在python中创建一个新变量

obj = MyClass()

但这实际上会定义一个名为obj的新变量,而不只是声明MyClass的变量。

在Java中,我们使用MyClass obj;声明它并定义MyClass obj = new MyClass();

我们可以在Python中实现相同的目标吗?

4 个答案:

答案 0 :(得分:2)

Python中没有“声明对象”这样的东西。如果您想在作用域中创建名称,则必须绑定到对象(现有对象或新对象)。

somename = someobj

答案 1 :(得分:1)

Python基于强大的动态鸭子打字。因此,变量没有类型,也不需要预先定义。

如果您想预先定义变量,可以执行以下操作:

my_string_var = None 

答案 2 :(得分:1)

Python没有显式的变量声明。变量只是通过赋值来创建的,当它们超出范围时会自动销毁它们。

只需:

obj = SomeObject()

在定义课程时:

旧式:

class MyClass:
    pass

新风格:

class MyClass(object):
    pass

答案 3 :(得分:0)

Python没有C ++或Java等语言中的变量。它只有名称。名称是对现有对象的引用。

与变量不同,它不包含类型信息或类似信息;所有这些信息都存储在实际对象上。没有要引用的对象的名称不会保留任何信息。因此,宣布只是一个名字是没有意义的;随后,你不能这样做。

经常需要的东西实际上是一个名称,指明显式未初始化的信息;例如,可能必须从外部源获取对象。在这种情况下,您应该使用显式的标记值 - 通常,None是合适的。

the_boss = None
for person in sorted(people, key=random.random()):
  if the_boss = None:
    the_boss = person
  else:
     person.set_boss(the_boss)