![](/img/trans.png)
[英]How to inherit a variable defined inside __init__ method of a class in python 3
[英]Python: How to define a variable in an __init__ function with a class method?
class TextToNumbers():
def __init__(self, number):
self.text = str(number)
self.chunks = parse_text_to_chunks(self.text)
def parse_text_to_chunks(text_to_parse):
#stuff
这是我正在建设的课程的一个例子。 我希望它在初始化时使用类方法定义一些变量。 (至少我认为这就是我想要的)我想如果我谈到我的最终目标,那就是我有一组复杂的信息需要在初始化时直接提供给一个类。 如何在初始化时调用类方法来定义类变量?
如果您正在寻找一种在初始化期间调用实例方法的方法,您可以使用self
来像这样调用它
class TextToNumbers():
def __init__(self, number):
self.text = str(number)
self.chunks = self.parse_text_to_chunks(self.text)
print self.chunks
def parse_text_to_chunks(self, text_to_parse):
# 1st parameter passed is the current INSTANCE on which this method is called
self.var1 = text_to_parse[1:]
return self.var1
TextToNumbers(123)
而且我相信这才是你真正需要的。 但是如果你想要一个类方法
class TextToNumbers():
def __init__(self, number):
self.text = str(number)
self.chunks = TextToNumbers.parse_text_to_chunks(self.text)
print self.chunks
@classmethod
def parse_text_to_chunks(cls, text_to_parse):
# 1st parameter passed is the current CLASS on which this method is called
cls.var1 = text_to_parse[1:]
return cls.var1
TextToNumbers(123)
但是创建一个类方法来初始化__init__
的类变量是没有意义的,因为类变量由类的所有实例共享,每次创建对象时,从__init__
调用都会覆盖。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.