Python 3自我。方法

时间:2018-05-14 00:19:55

标签: python class methods attributes self

假设有一个带有属性和方法的简单类。

class c:

    def __init__(self, a, b):
        self.a = a
        self.b = b

    def f(self):
        return(self.a + self.b)

plus = c(2, 2)
print(c.f(plus))

print(c(2, 2).f())

如果我打印这个,首先创建一个对象,一切正常。但是当我将属性传递给方法本身时,我得到一个错误。

print(c.f(2, 2))

那么,是否可以在不创建对象的情况下将属性传递给方法本身,就像在普通函数中一样?我做错了什么,或者在这种情况下我应该使用普通函数而不是方法吗? 谢谢你们的帮助;)

3 个答案:

答案 0 :(得分:1)

您可以使用staticmethod

class c:
  def __init__(self, a, b):
    self.a = a
    self.b = b
  @staticmethod
  def f(*args):
    return sum(args)


print(c.f(2, 2))

输出:

4

答案 1 :(得分:1)

如果您想避免创建类的实例,可以使用@staticmethod装饰器:

  private void radioButton15_CheckedChanged(object sender, EventArgs e)
    {
        Form2.show();
    }

我还建议关注PEP 8 Conventions并使用CapWords命名类。

答案 2 :(得分:1)

将课程视为模具。您实际上并不与模具本身进行交互,而是使用模具创建对象,然后您可以与之交互。要对对象执行某些操作,必须先创建它。这称为实例化。