这是classes 的一个明确用例。
python 没有代表像 ['jhon', 'abc', 'wa@gmail.com'] 这样的公司的列表,而是让您可以将其建模为 类:
class Company:
def __init__(self, manager_name, owner_name, email):
self.manager_name = manager_name
self.owner_name = owner_name
self.email = email
companies = {10: Company('jhon', 'abc', 'wa@gmail.com'),
12: Company('raghav', 'awdaw', 'raghavpatnecha15@gmail.com'}
这为您提供了比列表更好的界面,因为您可以通过名称而不是索引来访问属性:
>>> comp = Company('jhon', 'abc', 'wa@gmail.com')
>>> comp.manager_name
'jhon'
>>> comp.owner_name
'abc'
>>> comp.email
'wa@gmail.com'
如果你比较懒,不想手动定义Company类,可以使用collections.namedtuple来减少你要写的代码量:
from collections import namedtuple
Company = namedtuple('Company', 'manager_name owner_name email')
您还可以轻松地将列表字典转换为 Company 实例的字典:
companies = {10: ['jhon', 'abc', 'wa@gmail.com'],
12: ['raghav', 'awdaw', 'raghavpatnecha15@gmail.com']}
comps = {num: Company(*comp) for num, comp in companies.items()}
# result:
# {10: Company(manager_name='jhon', owner_name='abc', email='wa@gmail.com'),
# 12: Company(manager_name='raghav', owner_name='awdaw', email='raghavpatnecha15@gmail.com')}