假设有一个带有属性和方法的简单类。
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))
那么,是否可以在不创建对象的情况下将属性传递给方法本身,就像在普通函数中一样?我做错了什么,或者在这种情况下我应该使用普通函数而不是方法吗? 谢谢你们的帮助;)
答案 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)
将课程视为模具。您实际上并不与模具本身进行交互,而是使用模具创建对象,然后您可以与之交互。要对对象执行某些操作,必须先创建它。这称为实例化。