python中类的实例的重要性

时间:2014-10-30 11:38:32

标签: python class instance

我不了解创建类时实例的​​重要性。在一本关于Python编程的书中,我发现了这个关于创建一个转换度量单位的类的例子: 因此,类参数是初始单位,新单位和转换因子。

class ScaleConverter:
       def __init__(self, units_from, units_to, factor):
       self.units_from = units_from
       self.units_to = units_to
       self.factor = factor

       def description(self):
           return "Convert " + self.units_from + "to" + self.units_to

       def convert(self, value):
           return value * self.factor

c1 = ScaleConverter("inches", "mm", 25)

所以,我不明白如果我遗漏c1 = ScaleConverter("inches", "mm", 25)会发生什么 无论如何,我试图清除它并且类工作。它的重要性是什么?

4 个答案:

答案 0 :(得分:1)

c1 = ScaleConverter("inches", "mm", 25)行创建了类ScaleConverter的实例。如果没有这条线,你就可以定义一个类,但是你没有创建一个实例 - 所以你不能有效地做任何事情。一个类描述了该类的实例。

要使用类定义,请创建该类的实例:

c1 = ScaleConverter("inches", "mm", 25)

c2 = ScaleConverter("meters", "cm", 100)

在上文中,您现在有两个不同的类c1实例(c2ScaleConverter),您可以在其余代码中使用它们。这就是类和实例之间的区别:类就像一个蓝图,一个实例是使用该蓝图制作的实际内容。

答案 1 :(得分:1)

请查看官方文档。

使用通知

c1 = ScaleConverter("inches", "mm", 25)

创建一个新的ScaleConverter对象,并将其分配给您的c1变量。

类定义本身只是如何创建实例的蓝图。将其视为对象所遵循的模式或契约。


9.3.2. Class Objects

类对象支持两种操作:属性引用和实例化。

属性引用使用Python中所有属性引用使用的标准语法:obj.name。有效的属性名称是创建类对象时类的命名空间中的所有名称。所以,如果类定义看起来像这样:

class MyClass:
    """A simple example class"""
    i = 12345
    def f(self):
        return 'hello world'

然后MyClass.iMyClass.f是有效的属性引用,分别返回一个整数和一个函数对象。也可以为类属性分配,因此您可以通过分配更改MyClass.i的值。 __doc__也是一个有效的属性,返回属于该类的docstring:"一个简单的示例类"。

Class instantiation 使用函数表示法。只是假装类对象是一个无参数函数,它返回一个新的类实例。例如(假设上述类):

x = MyClass()

创建类的新实例,并将此对象分配给局部变量x。

答案 2 :(得分:1)

通过使用对象的实例,您可以使用相同的类进行不同的操作。

类是一种用于构造对象的工厂。类的非静态部分指定或描述对象将包含哪些变量和方法。 这将解释对象与类的不同之处:在程序运行时创建和销毁对象,如果使用相同的类创建对象,则可以有许多具有相同结构的对象。

c1 = ScaleConverter("英寸"," mm",25)

这里c1是ScaleConverter类的实例对象。因此,如果要对同一代码使用其他参数,则可以创建其他对象。

答案 3 :(得分:0)

ScaleConverter是你的班级。 c1是该类的一个实例。

运行c1 = ScaleConverter("inches", "mm", 25)时,为c1提供类ScaleConverter的属性

现在,您可以使用c1执行以下操作,因为它属于类ScaleConverter

print c1.description
"Convert inches to mm"
print c1.convert(2)
"50"