蟒蛇 - 同一类
问题描述:
内调用函数请参阅示例代码:蟒蛇 - 同一类
a = [1,2,3,4,5] # main list
b = [4,5,6] #variable list nr1
c = [1,2] #variable list nr2
class union(object):
def __init__(self, name):
self.name = name
def common_numbers(self, variable_list):
self.variable_list = variable_list
for x in self.name:
if x in self.variable_list:
yield(x)
def odd_numbers(self, odds):
self.odds = odds
for x in self.variable_list:
if not x % 2 == 0:
yield x
''' I receive: builtins.AttributeError: 'union' object has no attribute 'variable_list'.'''
x = union(a)
print(list(x.odd_numbers(c)))
我想了解如何同一个类中调用其他功能。正如你所看到的,我试图从branches函数中找到奇数。
请理解这是示例工作。我知道有很多解决方案可以使用或不使用类来获得所有权结果。但在这种情况下,我不需要结果,如果你能帮助我理解在课堂上调用其他功能,我真的会很满意。对不起,我的英语和先谢谢你。
答
由于您从未实际定义self.variable_list,因此您会收到错误。它只有在你叫conversumbers()时才定义,但你永远不会这么做。开始时,您可以将其定义:
class union(object):
def __init__(self, name, variable_list):
self.name = name
self.variable_list = variable_list
def common_numbers(self):
for x in self.name:
if x in self.variable_list:
yield(x)
x = union(a, b)
print list(x.odd_numbers(c))
或启动后,但调用odd_numbers前:
class union(object):
def __init__(self, name):
self.name = name
def common_numbers(self):
for x in self.name:
if x in self.variable_list:
yield(x)
x = union(a)
x.variable_list = b
print list(x.odd_numbers(c))