有没有一种方法可以在不知道参数的情况下从子类继承一个在父类中使用其函数参数的变量


class Context: 
def __init__(self, version = None): 
self.version = version
class Subparser: 
def __init__(self):
self.play = play
def on_packet(self, packet): 
self.version = packet.game
class Parser(Subparser): 
def __init__(self): 
super().__init__()
def parse_er_data(self, data): 
temp = self.version
breakpoint()

=> print(temp)
=> #the output is always None, but it should not be!

对于以上内容,parser_er_data()函数中的self.version将始终返回值None,我可以理解为什么,因为它从Context class而不是Subparser class继承了self.version。

有没有办法让它取on_packet()函数中Subparser class-的值?一个限制-我不知道packet是什么样子,也不知道它来自哪里!那么,仅凭上述信息,我们能做到这一点吗?

从函数范围获取变量的方法:

def fun(x=None):
a=1
b=2
if x==None:
return {'a':a,'b':b}
#... the rest of the function
return #... te end
fun()['a'] #output 1
fun()['b'] #output 2

但我看不出为什么有人想这么做,但。。。无论如何,您的问题是关于版本的,并且上下文中的版本不是SubParser的版本

最新更新