我不了解创建类时实例的重要性。在一本关于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)
会发生什么
无论如何,我试图清除它并且类工作。它的重要性是什么?
答案 0 :(得分:1)
第c1 = ScaleConverter("inches", "mm", 25)
行创建了类ScaleConverter
的实例。如果没有这条线,你就可以定义一个类,但是你没有创建一个实例 - 所以你不能有效地做任何事情。一个类描述了该类的实例。
要使用类定义,请创建该类的实例:
c1 = ScaleConverter("inches", "mm", 25)
c2 = ScaleConverter("meters", "cm", 100)
在上文中,您现在有两个不同的类c1
实例(c2
和ScaleConverter
),您可以在其余代码中使用它们。这就是类和实例之间的区别:类就像一个蓝图,一个实例是使用该蓝图制作的实际内容。
答案 1 :(得分:1)
请查看官方文档。
使用通知
c1 = ScaleConverter("inches", "mm", 25)
创建一个新的ScaleConverter
对象,并将其分配给您的c1
变量。
类定义本身只是如何创建实例的蓝图。将其视为对象所遵循的模式或契约。
类对象支持两种操作:属性引用和实例化。
属性引用使用Python中所有属性引用使用的标准语法:obj.name
。有效的属性名称是创建类对象时类的命名空间中的所有名称。所以,如果类定义看起来像这样:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
然后MyClass.i
和MyClass.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"