While refactoring a project, I met with a situation that one configuration extends another configuration, like this:
ConfigA = {"a":xx, "b":xx}
ConfigB extends ConfigA + {"a":yy, c:"yy"}
Code before refactor treats configA and configB separately. So after a few code iterations you will find configA has something same with configB. So I change it to this:
configA = {“a”:xx, “b”:xx} configB = dict(configA.items() + {“a”:yy, c:”yy”}}While this treats configA and configB evenly, meanwhile, it costs extra replication. A better way is like this:
configA = {“a”:xx, “b”:xx} configB = dict(configA, **{“a”:yy, c:”yy”}})The order of configA and configB’s own elements is immutable, which means if configA and configB has a same element, use configB as result.
NEXTgcc命令行参数总结