2015-10-16 73 views
0

我知道如何在Python如何声明对象,而不是创建新对象?

obj = MyClass() 

创建一个新的变量,但是这实际上将定义一个新的变量命名为obj其他不仅仅是宣称的MyClass的变量。

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

我们可以实现在Python一样吗?

+0

在使用它们之前不需要声明东西 – Holloway

+1

在Python中没有对象的情况下*“声明变量”的*点*是什么?它们实际上只是*名称*,标记在/指向对象的“指针”上。你可以做例如'obj = None',但没有什么意义。阅读http://nedbatchelder.com/text/names.html – jonrsharpe

+0

您声明了一些编译器进行检查的变量。 Python不需要编译。所以有必要做这样的声明。 – luoluo

回答

2

在Python中没有“声明对象”这样的东西。如果要在范围内创建名称,那么您必须将绑定到将其绑定到某个对象(现有或新建)。

somename = someobj 
1

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

如果您想定义变量前期,您可以做类似:

my_string_var = None 
1

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

刚:

obj = SomeObject() 

当谈到定义一个类:

旧风格:

class MyClass: 
    pass 

新风格:

class MyClass(object): 
    pass 
0

Python没有变量在语言suc中h作为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) 
相关问题