如果我运行以下cartopy
代码:
import cartopy.crs as ccrs
globe = ccrs.LambertCylindrical()
print(globe.proj4_params)
globe.proj4_params['a'] = 5
print(globe.proj4_params)
我得到:
{'proj': 'cea', 'lon_0': 0.0, 'a': 57.29577951308232, 'ellps': 'WGS84'}
{'proj': 'cea', 'lon_0': 0.0, 'a': 57.29577951308232, 'ellps': 'WGS84'}
暗示该proj4_params
属性是不可变的。
但这只是一个沼泽标准dict
:
print(type(globe.proj4_params))
<class 'dict'>
其中,由于它是在 C 中实现的,因此不能被覆盖以具有这种行为(至少不安全)。
好的,但是这个类的代码很简单,所以我的理解有问题。有人可以向我解释为什么我会出现这种行为吗?
编辑:
以下:
projection.proj4_params = dict(projection.proj4_params)
结果是:
*** AttributeError: attribute 'proj4_params' of 'cartopy._crs.CRS' objects is not writable