为什么我创建的某个课程中的方法,请求我输入" self"?

时间:2017-12-09 19:57:57

标签: python class oop self

我是面向对象编程的新手。这是python 3。 让我们举一些示例代码:

class MyClass:
      def __init__(self,a=1,b=2):
          self.a=a
          self.b=b
      def function1(self):
          c.self=salf.a/self.b + 5
          return(c.self)

当我从MyClass调用一个方法时。即:

MyClass.function1()

它返回: NameError:name' self'没有定义。

我理解,如果我将代码初始化为:

class MyClass(object):
     code etc...

如果我把它放好:       somevariable=MyClass; somevariable.function1()

它有效......我不知道为什么会这样。

非常感谢你!

1 个答案:

答案 0 :(得分:1)

您必须创建班级的对象:

class MyClass:
  def __init__(self,a=1,b=2):
      self.a=a
      self.b=b
  def function1(self):
      self.c=self.a/self.b + 5
      return(self.c)

print(MyClass().function1())

MyClass()创建一个可用于访问类中属性的对象。

一般情况:

m = MyClass()
print(m.function1())