【问题标题】:How is a class(object) different from a function类(对象)与函数有何不同
【发布时间】:2021-12-22 01:52:25
【问题描述】:

所以我知道类基本上是您编码时的蓝图,但我不明白的是它们与函数的区别。因为对于它们两者,您都可以分配变量并在它们内部使用不同的变量。为了让它们都能工作,你必须使用 exampleclass() 或 examplefunction() 来执行它。此外,您还可以在函数中执行函数或在函数中定义函数,使用类您可以在类中执行或定义类。

示例类:

class bank(object):
    def __init__(self, acc_num, acc_name, acc_DOB):
        self.acc_num = acc_num
        self.acc_name = acc_name
        self.acc_DOB = acc_DOB

或 示例函数:

def bank(num, name, DOB):
    acc_num = num
    acc_name = name
    acc_DOB = DOB

*我给出的两个例子可能并不完全正确,但我是在想办法。

我给出的两个例子看起来完全一样,但看起来他们做的是同样的事情,那么有什么区别。

【问题讨论】:

  • 您认为b 在使用类或函数运行b = bank(1, 'bob', '1980-05-04') 之后会是什么?你能用这个函数做任何有用的事情吗?
  • (另外,__init___ 下划线太多。)
  • 这只是一个例子,它不是一段实际的代码我只是对为什么你会使用一个类而不是一个函数感到困惑,@user2357112supportsMonica
  • 他们基本上不做同样的事情@user2357112supportsMonica,只是使用函数需要更多的代码并且更长的时间来表达与类相同的事情。由于使用该函数,您可以从函数外部检索数据以在其内部使用,就像 DOB 和名称和 acc num 一样。
  • 你会在这里找到一个很好的答案:stackoverflow.com/questions/18202818/classes-vs-functions

标签: python function class oop


【解决方案1】:

函数做特定的事情,类是特定的事情。

正如你所说,类是一个蓝图。一个类可以在其中包含方法,在您的示例中,您正在展示构造函数的作用。该方法在执行时会使用该蓝图创建一个新对象。与您在示例中列出的函数相比,该函数创建局部变量并将它们设置为等于传入的参数。此外,您不能“执行”课程。您只能调用其中的方法。例如)class.method() 与 function() 的比较。

Classes vs. Functions

【讨论】:

  • 好吧,这真的很有帮助,我认为这回答了我的问题。
猜你喜欢
  • 1970-01-01
  • 2017-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 2019-08-28
  • 1970-01-01
  • 2013-02-15
相关资源
最近更新 更多