类属性的简写

时间:2019-06-05 18:08:37

标签: javascript python python-3.x

我有以下课程:

user = User(
    first_name=first_name,
    last_name=last_name,
    email=email,
    age=age,
)

我知道您可以在JS ES6中编写

const foo = {x, y, z}

代替:

const foo = {
    x: x,
    y: y,
    z: z,
}

我想知道Python是否也有一个简单的解决方案来编写较短的代码而不用每次重复输入名称。

1 个答案:

答案 0 :(得分:-1)

在python中,只需使用__init__。这将允许您创建新类并传递参数。像JavaScript一样简写吗?有点,但不是真的。当然,创建init函数并传递值要比更新类和设置每个单独的属性便宜/更快。

class Complex:
    def __init__(self, realpart, imagpart):
        self.r = realpart
        self.i = imagpart

然后您可以执行以下操作:

x = Complex(3.0, -4.5)
x.r, x.i
(3.0, -4.5)

https://docs.python.org/3/tutorial/classes.html

在JavaScript中,运行以下代码不一定会使您的课程崭新,而是涉及到更多内容。但是,如果已经定义了xyz,就可以做到。

const foo = {x, y, z}

const x = 'x';
const y = 'y';
const z = 'z';
console.log( { x, y, z} );

// OR

const obj = {x: 'x', y: 'y', z: 'z'};
console.log( {...obj });

// OR

console.log({x: 'x', y: 'y', z: 'z'});