有人可以在不使用互联网上的常见示例的情况下提供创造性的解释"Instance"吗?



我是编程新手,正在尝试理解实例这个术语。我发现这是一个奇怪的词,我似乎无法从语言学上理解。即使你以前从未听说过心理学这个词,你也能很快理解它,因为你能理解";psyco";指的是"精神状态";ology";指的是"对某事的研究"。

但是";实例";在编程中是如此模糊。这是一种物体。好的,很好,但我对物体的理解仍然很模糊,缺乏经验,所以我在概念上并没有什么可以联系的。

如果有非技术背景的人能解释";实例";在英语中不使用单词";实例";,或者只是说它是一种物体。

也许有人可以解释他们做了什么。有很多关于他们是什么的解释(我不明白(,但从他们实际做什么的角度来看没有答案。

提前感谢那些试图回答的人!

我认为它是一个"发生";抽象的想法(物体(。举个例子(请耐心听我说(——柏拉图式的椅子,自然界中存在的椅子(或椅子的例子(将是餐厅的椅子,我可以通过家里办公室的入口看到它。换句话说,柏拉图式的椅子是一种理念(或理想(的椅子——一种只存在于我们脑海中的椅子,但我能看到(和触摸到(的餐厅椅子就是一个例子。所以我们可以把实例看作是抽象概念的具体例子。

将类视为创建对象的蓝图。蓝图是一种详细的照片印刷品,显示了一些东西将如何建造。想象一个房子的蓝图。这个蓝图可以被视为一个类。使用相同的蓝图,我们可以创建多个房屋,这些房屋可以被视为对象。根据这个蓝图建造的每一个物体或房屋都是这个蓝图的一个实例。

让我们上一堂"员工"课。您可以将其视为真实实体员工的模板。这个类有两个相关的东西:属性和行为。类"Employee"将具有与之关联的某些属性,如名字、姓氏和薪资。类似地,类"Employee"也会有一些与之相关的行为,如创建全名、申请加薪等。

对象是类的特定实例。如果"Employee"是我们的类,那么"Mario Rossi"、"Ashley Brown"one_answers"Gunther Schafer"将是该类的特定实例,或者换句话说,这些将是"Employer"类的对象。

创建类和类的实例

在下面的示例中,我们创建了一个名为Employee的类。然后,我们创建这个类的两个对象(emp1和emp2(或实例。

class Employee:
pass
emp1 = Employee()
emp2 = Employee()
print(emp1)
print(emp2)

如果你打印这些对象,你会得到:

<__main__.Employee object at 0x000002297B231A00>
<__main__.Employee object at 0x000002297B1A8970>

这本质上表明,创建的两个对象是唯一的实例,因为它们在内存中占据不同的位置。

有了类对象,我们现在可以为每个员工手动创建实例变量。例如,我们希望emp1和emp2有名字、姓氏、电子邮件和工资。您所需要做的就是设置实例变量并传递它们的唯一属性。现在,每个实例变量都有自己独特的属性,您可以打印出所需的信息。

class Employee:
pass
emp1 = Employee()
emp2 = Employee()
emp1.fname = 'Mario'
emp1.lname = 'Rossi'
emp1.email = 'Mario.Rossi@company.com'
emp1.wage = 100000
print(emp1.email)
print(emp1.wage)

输出:

Mario.Rossi@company.com
100000

到目前为止,代码看起来不错,但并不实用。由于必须手动设置每个变量,我们不仅容易出错,而且没有利用类的强大功能。相反,我们将使用一个名为init((的特殊函数。这个函数是一个构造函数,我们将在创建对象属性时从中为其赋值。

class Employee:
def __init__(self,fname,lname,wage):
self.fname = fname
self.lname = lname
self.wage = wage
self.email = f"{fname}.{lname}@company.com"
emp1 = Employee('Mario','Rossi',100000)
emp2 = Employee('Jane','Smith',70000)
print(emp1.email)
print(emp1.wage)

输出:

Mario.Rossi@company.com
100000

当我们创建Employee类的实例时,我们可以传入在init((函数中指定的值。现在,我们的init((函数获取我们称为self的实例。Self必须始终是第一个参数。使用init((函数为对象属性赋值

相关内容

最新更新