python 中的设置和获取命令如何工作

How does set and get commands work in python

对于 python 这样的字典,

data={
       'name':'george',
       'isRetired': True,
       'organisation': ['ABC','XYZ','MNO'],
        
     }

此处的 set 和 get 是如何工作的?

while True:
    cmd = input('> ').split()
    if cmd[0] == 'get':
        key = ' '.join(cmd[1:])
        path = key.split('.')
        now = data
        for k in path:
            if k in now:
                now = now[k]
            else:
                print('Error: invalid key')
        print(now)
    elif cmd[0] == 'set':
        key, value = ' '.join(cmd[1:]).split('=')
        path = key.split('.')
        now = data
        for k in path[:-1]:
            if k in now:
                now = now[k]
            else:
                print('Error: invalid key')
        now[path[-1]] = value
    elif cmd[0] == 'quit':  # for debugging purposes
        break
    else:
        print('Error: invalid command')

print(data)

这是一个很长的程序。它分解了命令。
如果命令是get,则将参数逐点分解,逐级得到item。
如果命令是set,那么把参数分解成一个key和一个value,把key按点分解找到key,然后设置value。
quit 命令用于调试目的。

调试:

> get ABC.positions.lead
3
> get ABC.yearsofService
10
> get name
george
> set ABC.positions.manager=5
> quit
{'name': 'george', 'isRetired': True, 'organisation': ['ABC', 'XYZ', 'MNO'], 'ABC': {'currentlyEmployed': False, 'yearsofService': '10', 'positions': {'executive': '2', 'manager': '5', 'lead': '3', 'ceo': None}}}