def 函数返回为类对象

函数return一个类对象,具体程序如下:


class A:
    X: int

def a(x,y)-> A:
    x = x
    y = y
    return A(X=x+y)

print(a(1,2))
###############################

TypeError: A() takes no arguments

怎样做可以正确赋值给A类中的X?

class A没有构造函数

class A:
    def __init__(self, X: int):
        self.X = X
    X: int


def a(x, y) -> A:
    x = x
    y = y
    return A(X=x + y)


print(a(1, 2))


如果类A中的X是类变量的话,代码这么写:

class A:
    # X是类变量,所有实例共享
    X: int
    def __init__(self, X: int):
        A.X = X
    
def a(x, y) -> A:
    x = x
    y = y
    return A(X=x + y)
 
c = a(1, 2)
d = a(2, 3)
print(c.X) # 返回值为5
print(d.X) # 返回值为5

有帮助的话,请采纳~

以下答案引用自GPT-3大模型,请合理使用:

。

答:可以将函数a修改下,增加两个参数传递到A类中:

class A:
    def __init__(self,x,y):
        self.x=x
        self.y=y
        self.X=self.x+self.y

def a(x,y)-> A:    
    return A(x,y)

print(a(1,2))

# 打印输出:<__main__.A object at 0x0000029D93588978>

如果我的回答解决了您的问题,请采纳我的回答