python - 这是使用@classmethod 的正确方法吗?
问题描述
class CityNameMapping(object):
CITY_NAME_MAPPING = {}
with open('data/city.csv', 'r') as file:
data = file.read()
if not data.startswith("#"):
city_entry = data.split('\t')
CITY_NAME_MAPPING[city_entry[1]] = city_entry[0]
@classmethod
def get_mapping(cls, city):
if city in cls.CITY_NAME_MAPPING:
return cls.CITY_NAME_MAPPING[city]
else:
print("No city name found: {} ".format(city))
return None
该函数应该将城市名称从一种形式映射到另一种形式,即从日文书写形式到英文书写形式。例子:
Nagoya 名古屋市
我定义了一个全局变量CITY_NAME_MAPPING,然后使用一个类方法来访问它。另外,如果再次调用此函数,这是否确保文件只会加载一次?
解决方案
一旦您在读取文件时测试添加打印语句以对其进行测试,文件将被加载。CITY_NAME_MAPPING
也可以不用classmethod访问。(self.CITY_NAME_MAPPING)
推荐阅读
- git - 在功能分支合并之前回滚 git 主分支,做一些工作并再次合并功能分支
- reactjs - React 无法识别 DOM 元素上的 computedMatch 属性
- javascript - 将运行简单 js 脚本的组件添加到 create-react-app 应用程序
- ios - 如何从 VNGeneratePersonSegmentationRequest 中释放内存
- opengl - 有没有办法在用三角形条带绘制的网格上实现类似行进正方形的东西?
- mongodb - MongoDB 5.0 时间序列集合、元字段和“其他”字段
- c# - 如何让 2 个用户控件访问同一个静态变量?
- php - 使用带有 gree/jose 库的 PHP 从签名验证 webhook
- c++ - c ++部分模板特化与需求语句:错误:来自类Bar的'foo'的out-of-line定义
没有定义 - node.js - Nodejs有没有办法杀死一个进程然后重新启动它