为了账号安全,请及时绑定邮箱和手机立即绑定

Python:在运行时更改方法和属性

Python:在运行时更改方法和属性

慕娘9325324 2019-12-10 09:35:29
我希望在Python中创建一个可以添加和删除属性和方法的类。我该如何完成?哦,请不要问为什么。
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

我希望在Python中创建一个可以添加和删除属性和方法的类。


import types


class SpecialClass(object):

    @classmethod

    def removeVariable(cls, name):

        return delattr(cls, name)


    @classmethod

    def addMethod(cls, func):

        return setattr(cls, func.__name__, types.MethodType(func, cls))


def hello(self, n):

    print n


instance = SpecialClass()

SpecialClass.addMethod(hello)


>>> SpecialClass.hello(5)

5


>>> instance.hello(6)

6


>>> SpecialClass.removeVariable("hello")


>>> instance.hello(7)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

AttributeError: 'SpecialClass' object has no attribute 'hello'


>>> SpecialClass.hello(8)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

AttributeError: type object 'SpecialClass' has no attribute 'hello'


查看完整回答
反对 回复 2019-12-10
  • 3 回答
  • 0 关注
  • 493 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信