Python3 类属性方法外部添加

# 例子一
# 导入MethodType模块
from types import MethodType
# 定义空类
class ExampleA(object):
    pass
# 空类实例化
examA = ExampleA()
# 定义添加的函数
def funcExam(self, age):
    self.age = age
# 添加函数
examA.funcExam = MethodType(funcExam, examA)
# 使用定义的函数
examA.funcExam(25)
# 使用定义的函数带的属性
print(examA.age)

# 例子二
# 使用另一个实例进行测试
examB = ExampleA()
# examB.funcExam(25) # 没有该属性
# examB.age报错, 没有该属性
# examB.age

# 例子三
# 添加属性或方法到类,而不是类的实例
ExampleA.funcExam = MethodType(funcExam, ExampleA)
# 添加类方法
ExampleA.funcExam(100)
print(ExampleA.age)
examC = ExampleA()
#examC.funcExam(50)
print(examC.age)

# 添加类属性
ExampleA.name = "Oliver"
examD = ExampleA()
print(examD.name)


# 定义添加的函数, 不能把方法当成属性,直接添加如类中, 但可以通过MethodType方法来添加
# 至于属性, 类名.属性名 = 值, 这种方式就可以添加类属性
def funcExamB(self, phone):
    self.phone = phone

ExampleA.funcExamB = MethodType(funcExamB, ExampleA)
ExampleA.funcExamB(137)
exambfuncInstance = ExampleA()
print(exambfuncInstance.phone)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值