赋值语句

Python Parser 在基本赋值、元组赋值、序列赋值、序列解包、增强赋值(+=, -=, &=, |=,*=, /=, **=, %=)等方面与 Python 保持一致。但目前还不支持列表赋值和多变量链式赋值。

基本赋值

a=10
print(a)
// output: 10

元组赋值

a,b=11,12
print(a)
// output: 11

序列赋值

x, y, z = "Orange"
print(x)
// output: Orange
print(y)
// output: Orange
print(z)
// output: Orange

序列解包

a, *b = 'Orange'
print(a)
// output: Orange
print(b)
// output: Orange

增强赋值

a = 42
a *= 3
print(a)
// output: 126

列表赋值(不支持)

[a,b]=[1,2]

链式赋值(不支持)

x = y = z = "Orange"

修改嵌套列表元素值

暂不支持通过使用多层索引的方式修改嵌套列表的元素值,如下例第2行代码。这是因为 DolphinDB 会将 a[1][1]转换成 a[1,1],但 Python 的列表对象不支持[x,y]作为索引。

a=[2, [3, 5], 10]
a[1][1]=19   
// output: Assignment statement failed probably due to invalid indices [a[1,1] = 19]

# 将单层索引赋值给一个变量,再修改该变量的元素值的方式进行修改:
tmp=a[1]
tmp[1]=19
a
// output: [2, [3, 19], 10]

释放变量

通过 undef 函数从内存中释放变量。

x=1;
undef(`x)
def max(a, b):
    if a > b:
        return a
    else:
        return b
undef(`max)