现在我正在学习Python并且正在努力学习OOP的一些概念,其中之一是(对我来说)动态初始化类实例并将它们分配给动态生成的变量名称是多么困难以及为什么我在阅读我不应该'首先要做到这一点.
在大多数具有类似方向的线程中,答案似乎是它不是Pythonic.
有人可以详细说明吗?
以典型的OOP学习案例为例:
LOE = ["graham", "eric", "terry_G", "terry_J", "john", "carol"]
class Employee():
def __init__(self, name, job="comedian"):
self.name = name
self.job = job
Run Code Online (Sandbox Code Playgroud)
为什么这样做更好:
employees = []
for name in LOE:
emp = Employee(name)
employees.append(emp)
Run Code Online (Sandbox Code Playgroud)
然后
for emp in employees:
if emp.name == "eric":
print(emp.job)
Run Code Online (Sandbox Code Playgroud)
而不是这个
for name in LOE:
globals()[name] = Employee(name)
Run Code Online (Sandbox Code Playgroud)
和
print(eric.job)
Run Code Online (Sandbox Code Playgroud)
谢谢!