python中如何在一个类中调用另一个类的method中的变量?能实现吗?能否帮忙看下我的代码,谢谢!
我写了下面的代码,但是貌似在第二个类调用第一个类的变量时那里出了问题,请问有人知道应该怎样从一个类调用另一个类中方法的变量吗?麻烦了!我的代码:(最终想要获得的结果是两个...
我写了下面的代码,但是貌似在第二个类调用第一个类的变量时那里出了问题,请问有人知道应该怎样从一个类调用另一个类中方法的变量吗?麻烦了!
我的代码:(最终想要获得的结果是两个列表中元素所有组合的可能性)
Name = ['Stella','Kay']
ID = [1,3]
class Student:
def __init__(self):
for name in Name:
for id in ID:
self.name = name
self.id = id
class Students:
def __init__(self):
self.lst = []
self.lst.append("{} of {}".format(Student.__init__(self.id), Student.__init__(self.name)))
def __str__(self):
return '\n'.join(self.lst)
def __repr__(self):
return self.__str__()
s = Students()
print(s)
谢谢! 展开
我的代码:(最终想要获得的结果是两个列表中元素所有组合的可能性)
Name = ['Stella','Kay']
ID = [1,3]
class Student:
def __init__(self):
for name in Name:
for id in ID:
self.name = name
self.id = id
class Students:
def __init__(self):
self.lst = []
self.lst.append("{} of {}".format(Student.__init__(self.id), Student.__init__(self.name)))
def __str__(self):
return '\n'.join(self.lst)
def __repr__(self):
return self.__str__()
s = Students()
print(s)
谢谢! 展开
1个回答
展开全部
你这个代码很有问题,
1. class Student:
def __init__(self):
for name in Name:
for id in ID:
self.name = name
self.id = id
最终Student得到的是实例有两个变量name和id,他们的值分别是Kay和3,初始化时候的遍历完全没有意义。
2. self.lst.append("{} of {}".format(Student.__init__(self.id), Student.__init__(self.name)))
Student是一个类型,你都没创建一个实例,__init__是实例的初始化函数,使用"__"修饰,是私有函数,不能在外部调用,然后那个里面参数的self是Students的self肯定是访问不到id和name的属性的。
总的来说,代码存在很多的问题。
想要获得的结果是两个列表中元素所有组合的可能性,可以这样实现:
Name = ['Stella','Kay']
ID = [1,3]
result = [(a, b) for a in ID for b in Name]
这样得到的result就是两个列表的元素的组合
1. class Student:
def __init__(self):
for name in Name:
for id in ID:
self.name = name
self.id = id
最终Student得到的是实例有两个变量name和id,他们的值分别是Kay和3,初始化时候的遍历完全没有意义。
2. self.lst.append("{} of {}".format(Student.__init__(self.id), Student.__init__(self.name)))
Student是一个类型,你都没创建一个实例,__init__是实例的初始化函数,使用"__"修饰,是私有函数,不能在外部调用,然后那个里面参数的self是Students的self肯定是访问不到id和name的属性的。
总的来说,代码存在很多的问题。
想要获得的结果是两个列表中元素所有组合的可能性,可以这样实现:
Name = ['Stella','Kay']
ID = [1,3]
result = [(a, b) for a in ID for b in Name]
这样得到的result就是两个列表的元素的组合
追问
恩,我也知道故意用这样复杂的方法去解决简单的问题很无意义T3T,因为最近新学class的知识,必须去练习用类定义解决问题所以才这样。。。谢谢你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询