小编Rob*_*ith的帖子

为什么不能在python中动态生成变量名?

现在我正在学习Python并且正在努力学习OOP的一些概念,其中之一是(对我来说)动态初始化类实例并将它们分配给动态生成的变量名称是多么困难以及为什么我在阅读我不应该'首先要做到这一点.

在大多数具有类似方向的线程中,答案似乎是它不是Pythonic.

例如,在python中生成变量名称

有人可以详细说明吗?

以典型的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)

谢谢!

python oop

5
推荐指数
1
解决办法
71
查看次数

标签 统计

oop ×1

python ×1