Python中的空类对象

问题描述 投票:48回答:4

[我正在教授面向对象编程的Python类,并且在我学习如何解释类​​时,我看到了一个空的类定义:

class Employee:
    pass

然后该示例继续为此类的对象定义名称和其他属性:

john = Employee()
john.full_name = "john doe"

有趣!

我想知道是否有一种方法可以为这样的类的实例动态定义一个函数?类似于:

john.greet() = print 'Hello, World!'

这在我的Python解释器中不起作用,但是还有另一种方法吗?

python oop empty-class
4个回答
36
投票

一个类或多或少是对象属性dict的精美包装。当实例化一个类时,您可以为其分配属性,这些属性将存储在foo.__dict__中;同样,您可以在foo.__dict__中查找您已经编写的任何属性。

这意味着您可以执行一些巧妙的动态操作,例如:


16
投票

尝试使用lambda


0
投票

您可以使用AttrDict


0
投票

您还可以使用collection标准模块中的“命名元组”。命名元组的工作方式类似于“普通”元组,但是元素具有名称,您可以使用“点语法”访问元素。从collection docs

© www.soinside.com 2019 - 2024. All rights reserved.