将变量列表 1 class 发送到 python 中的其他 class
Send list of variables one class to other class in python
这里我想发送一个 class 对象属性到其他 class.my 基本程序看起来像这里
class A():
def __init__(self,name,age):
Self.name = name
Self .age = age
Return tuple(self.name,self.age)
Class B():
def __init__(self,oldInfo,job):
Self.oldInfo=oldInfo
Self.job=job
Name,age= oldInfo
Print(Name,age,job)
#calling block
Obj1=A("Scott","28")
Obj2=B(Obj1,"devolper")
因此出现了一些错误,例如
over unpack
should return None not tuple
return should be 1 value not multiple
- 元组应该是
tuple((self.name,self.age))
而不是 tuple(self.name,self.age)
,因为 tuple()
只接收 1 个参数而不是 2 个。(我不确定 python3 上的这个)
__init__()
应该 return None 而不是元组,因为它会创建一个对象,试着弄清楚。
- 因此,
oldInfo
是 "one" 对象,而您试图将其解压缩为 2,姓名和年龄,因此出现 "over unpack" 错误。
__init__()
方法必须始终 return None。你不能让它成为 return 任何其他东西。您可以将您的元组粘贴在一个实例变量中,然后在您的实例上使用 getter 方法或直接(较少的 python 方式)获取它。您还错误地使用了 tuple()
。 tuple()
将单个参数作为元组或列表,而不是两个单独的参数。调用 tuple()
也不一定,因为您可以简单地通过 foo = ('something', 'something else')
创建一个新元组
class A():
def __init__(self, name, age):
self.name = name
self.age = age
self.tuple = (self.name, self.age)
class B():
def __init__(self, oldInfo, job):
self.oldInfo = oldInfo
self.job = job
name, age = oldInfo.tuple
print(name, age, job)
obj1 = A("Scott", "28")
obj2 = B(obj1, "developer")
另请注意,您的元组并不是真正必需的,因为您已经在 A class 中将姓名和年龄指定为属性。您可以从 B 调用它们,因为 B 已经引用了整个对象:
class A():
def __init__(self, name, age):
self.name = name
self.age = age
class B():
def __init__(self, oldInfo, job):
self.oldInfo = oldInfo
self.job = job
print(oldInfo.name, oldInfo.age, job)
obj1 = A("Scott", "28")
obj2 = B(obj1, "developer")
所以当我回答这个问题时,我想我应该给你一些建议。
1、python关键字首字母小写,def不是Def,其他也是。
你可以看看我的代码或者闲着用这个代码。
import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import',
'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try',
'while', 'with', 'yield']
2、另一个是你应该在代码中使用缩进的四个space。
3、当你想获取属性时,你应该在代码中定义方法。Obj1=A("Scott","28"), Obj1 只是一个带有 class A 的对象,您可以使用该对象通过方法获取您的属性。
我的代码:
class A():
def __init__(self,name,age):
self.name = name
self .age = age
def gettuple(self):
return tuple([self.name,self.age])
class B():
def __init__(self,oldInfo,job):
self.oldInfo = oldInfo
self.job = job
(Name,age) = oldInfo
print(Name,age,job)
#calling block
devolper = 'goggo'
Obj1=A("Scott","28")
Obj2=B(Obj1.gettuple(),devolper)
上次,我认为您应该在 python.org 中学习更多示例 enter link description here
这里我想发送一个 class 对象属性到其他 class.my 基本程序看起来像这里
class A():
def __init__(self,name,age):
Self.name = name
Self .age = age
Return tuple(self.name,self.age)
Class B():
def __init__(self,oldInfo,job):
Self.oldInfo=oldInfo
Self.job=job
Name,age= oldInfo
Print(Name,age,job)
#calling block
Obj1=A("Scott","28")
Obj2=B(Obj1,"devolper")
因此出现了一些错误,例如
over unpack
should return None not tuple
return should be 1 value not multiple
- 元组应该是
tuple((self.name,self.age))
而不是tuple(self.name,self.age)
,因为tuple()
只接收 1 个参数而不是 2 个。(我不确定 python3 上的这个) __init__()
应该 return None 而不是元组,因为它会创建一个对象,试着弄清楚。- 因此,
oldInfo
是 "one" 对象,而您试图将其解压缩为 2,姓名和年龄,因此出现 "over unpack" 错误。
__init__()
方法必须始终 return None。你不能让它成为 return 任何其他东西。您可以将您的元组粘贴在一个实例变量中,然后在您的实例上使用 getter 方法或直接(较少的 python 方式)获取它。您还错误地使用了 tuple()
。 tuple()
将单个参数作为元组或列表,而不是两个单独的参数。调用 tuple()
也不一定,因为您可以简单地通过 foo = ('something', 'something else')
class A():
def __init__(self, name, age):
self.name = name
self.age = age
self.tuple = (self.name, self.age)
class B():
def __init__(self, oldInfo, job):
self.oldInfo = oldInfo
self.job = job
name, age = oldInfo.tuple
print(name, age, job)
obj1 = A("Scott", "28")
obj2 = B(obj1, "developer")
另请注意,您的元组并不是真正必需的,因为您已经在 A class 中将姓名和年龄指定为属性。您可以从 B 调用它们,因为 B 已经引用了整个对象:
class A():
def __init__(self, name, age):
self.name = name
self.age = age
class B():
def __init__(self, oldInfo, job):
self.oldInfo = oldInfo
self.job = job
print(oldInfo.name, oldInfo.age, job)
obj1 = A("Scott", "28")
obj2 = B(obj1, "developer")
所以当我回答这个问题时,我想我应该给你一些建议。
1、python关键字首字母小写,def不是Def,其他也是。 你可以看看我的代码或者闲着用这个代码。
import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import',
'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try',
'while', 'with', 'yield']
2、另一个是你应该在代码中使用缩进的四个space。
3、当你想获取属性时,你应该在代码中定义方法。Obj1=A("Scott","28"), Obj1 只是一个带有 class A 的对象,您可以使用该对象通过方法获取您的属性。
我的代码:
class A():
def __init__(self,name,age):
self.name = name
self .age = age
def gettuple(self):
return tuple([self.name,self.age])
class B():
def __init__(self,oldInfo,job):
self.oldInfo = oldInfo
self.job = job
(Name,age) = oldInfo
print(Name,age,job)
#calling block
devolper = 'goggo'
Obj1=A("Scott","28")
Obj2=B(Obj1.gettuple(),devolper)
上次,我认为您应该在 python.org 中学习更多示例 enter link description here