【发布时间】:2017-11-10 04:27:46
【问题描述】:
我看到以前有人问过这个问题,但是当我说试图理解这个概念并且因此无法继续前进时,请相信我。我非常感谢任何人的帮助,所以如果我对某些事情不清楚,请告诉我。
我一直在尽我最大的努力继续前进并开始使用 Python 进行编码,因为我有信心在使用流控制和尝试操作数据类型时了解该语言的结构,但是,我似乎仍然没有掌握 OOP。
我一直在做很多研究,试图了解对象和实例之间的区别是什么,以及这两个术语是如何在程序中调用的。据我所知,它们是完全相同的东西,但是,当人们开始使用非常高级的术语来描述这个概念时,我真的很困惑。我知道实例化一个Object是一个类的Instance,但我不明白的是彼此的优先级。
例如:
class MyClass:
#Attributes?
def __init__(self, name, age):
self.name = name
self.age = age
def happy_birthday(self):
return 'You are {}, happy birthday {}.format(self.age, self.name)'
#someone said that the object is the instance, however, I do not understand that part.
#Instantiating an object?
boy1 = MyClass()
#Is this also an object or an instance if I call the function?
boy1.happy_birthday()
我也一直在寻找在代码中标记哪些部分是哪些部分的示例。
【问题讨论】:
-
当你输入这个问题时,重复肯定已经显示为建议,不是吗?
-
嗯,有“Python 中的一切都是对象”这句话,所以
boy1是一个恰好是MyClass实例的对象。 -
您的最后一行可能是最令人困惑的部分。假设您的班级是
Table,我们创建table1= Table('mine'),其中'mine'是一个字符串,可以传递给新的Table对象以指示拥有。所以,现在我们有了一张独特的桌子——我房间里的那张。table2 =Table('yours')。如果我把咖啡洒在我的桌子上 (table1.spill_coffee()),它也会洒在你的桌子上吗?它们都是表,也是对象,但只有 my 表(我家中的表实例 -table1)受到影响。而且我的桌子在泄漏后仍然是同一个物理对象,它不是被泄漏重新制作的。 -
我认为这两个重复项都与类似 JS 的解释混淆了。 Javascript没有适当的类,只有“对象原型”。在 Python 中,每个对象都是类的一个实例。 This 是 IMO 链接答案中最好的。
-
虽然我感谢那些帮助我了解这个概念的人的帮助,但我也想表达一些社区成员的粗鲁。我想知道为什么会有一个辱骂和粗鲁的标志选项。再次感谢所有帮助过我的人。
标签: python class oop object methods