将变量列表 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

  1. 元组应该是 tuple((self.name,self.age)) 而不是 tuple(self.name,self.age),因为 tuple() 只接收 1 个参数而不是 2 个。(我不确定 python3 上的这个)
  2. __init__() 应该 return None 而不是元组,因为它会创建一个对象,试着弄清楚。
  3. 因此,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