【问题标题】:Main objective of class [duplicate]课程的主要目标[重复]
【发布时间】:2016-03-13 04:33:19
【问题描述】:

我最近了解了类、方法和(自我)函数。虽然我似乎了解事物的语法方面,但我发现必须在变量前面键入 [self] 很麻烦,而且几乎没有什么好处。 与仅使用没有类引用的单个函数相比,这在什么情况下会有好处?

【问题讨论】:

  • 类是面向对象编程的核心概念之一。使用它们是个好主意。而self 引用对象的当前实例。另请参阅en.wikipedia.org/wiki/Object-oriented_programming 了解总体思路。
  • 请参考这个问题:stackoverflow.com/questions/7721920/…
  • 当然,类语法可能很麻烦,而且在小程序中可能没有任何好处。但是当事情变得复杂时,无论是在初始开发期间还是在您想要扩展程序时,OOP 都是保持事情井井有条的好方法。您可能会发现这篇文章很有帮助:Why is Object-Oriented Programming Useful?
  • 在其他 OOP 语言中,有一个 this 变量隐式定义在方法中。在pyhton中,它不是隐式创建的,它的名字一定不能是self(虽然人们习惯使用self)。
  • @ColonelThirtyTwo:我认为这不是一个合适的欺骗目标。 OP 知道语法。他们在问为什么他们应该经历使用 OOP 的麻烦。

标签: python class methods self


【解决方案1】:

与仅使用没有类引用的单个函数相比,这在什么情况下会有好处?

哇……真是个问题!我认为你应该从面向对象编程的讲座开始。

简单地说:使用class 在模块中布局函数的好处是启用面向对象编程的许多功能(通过行为、类继承、属性封装数据……)。

更详细地说:OOP 背后的主要思想是,您创建一个公共编程接口,其他开发人员(包括您)将使用,并且您可以隐藏内部工作,所以一旦公共接口全部实现,你不关心内部是如何工作的,甚至可以在不破坏使用它的代码的情况下进行更改。

因此,在这种情况下,您创建了一个类,并在自己的数据上实现了自己的算法,但人们真正关心的是如何使用这些算法更改您的数据。

这些算法被称为方法和数据成员

在许多语言中,当您创建方法(即绑定到“对象”的函数)时,对对象当前实例的引用是隐式的(在 Java 或 C++ 中可能是显式的,即this 变量)。

在 python 中,语言设计者选择它是显式的,并按约定调用self。然后在极少数情况下,您可以根据需要选择将其称为 this(这在进行嵌套类时很有用)。

最后,我谈到了“类”、“实例”和“对象”。 objectclassinstance。这意味着 class 在这里展示了事物是如何工作的(成员是什么,方法是什么……)。然后你通过调用构造函数实例化你的对象。因此,您可以拥有许多共享同一个类的 object。这意味着它们的工作方式相似,但它们的数据不同。

但这里我只是皮毛而已,只是想告诉你selfclasses背后有很多概念。

有关该主题的更多信息,请阅读书籍并参加编程课程:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-14
    • 2018-12-07
    • 2014-02-23
    • 2010-09-07
    • 2014-12-09
    • 2013-07-26
    • 1970-01-01
    • 2014-08-13
    相关资源
    最近更新 更多