【发布时间】:2019-07-11 22:05:35
【问题描述】:
目前我这样做是为了使用SampleClass.method1():
output = SampleClass().method1(input_var)
但是,我想这样做:
output = SampleClass.method1(input_var).
我该怎么做?
class SampleClass(object):
def __init__(self):
self.var1 = 'var1'
self.var2 = 'var2'
def method1(self, input_var):
self.var3 = self._method2(input_var)
return self._method3(self.var3)
def _method2(self):
pass
def _method3(self):
pass
上面的类改成下面这样可行吗?
class SampleClass(object):
def __init__(self, input_var):
self.var1 = 'var1'
self.var2 = 'var2'
return self.method1(input_var)
def method1(self, input_var):
self.var3 = self._method2(input_var)
return self._method3(self.var3)
def _method2(self):
pass
def _method3(self):
pass
谢谢。
【问题讨论】:
-
你可以写一个类方法,但是
method1是访问实例变量,所以它只作为实例方法才有意义。 -
method1()在方法中使用实例self。你希望那是什么? -
你能给我一些示例代码吗?类结构可以改变,我只想写一个使用方法的类,它不必这样做:SampleClass().method1(input_var) 来调用该方法,而是这样做:SampleClass.method1(input_var )。谢谢。
标签: python class initialization static-methods class-method