python:将一个外部函数,转化为类中的方法
2017-06-16 22:08
176 查看
python作为一门动态语言,在对于oop的实现上,相比Java,就少了很多限制。也多了很多的“随意性”。
当然,这种随意性和动态特性,也让python代码在后续的维护变得更加困难。
在非必要的情况下,个人不建议这些做法。
但是对这些操作,了解一下还是有必要的。
第一,在阅读代码的时候,不会对这种操作感到困惑
第二,在特定的场景下,可能需要进行这种操作
另外,python中对对象方法的调用也有两种形式:
在上面的案例中,就有
当然,这种随意性和动态特性,也让python代码在后续的维护变得更加困难。
在非必要的情况下,个人不建议这些做法。
但是对这些操作,了解一下还是有必要的。
第一,在阅读代码的时候,不会对这种操作感到困惑
第二,在特定的场景下,可能需要进行这种操作
# -*- coding: UTF-8 -*- """ Created on 2017/6/16 @author: cat 将一个外部函数,转化为类中的方法 """ class rec: pass def upperName(self): return self.name.upper() rec.func = upperName # 在类的外部,给类增加方法(属性) if __name__ == '__main__': rec.name = "bob" # 在类的外部,给类增加属性 x = rec() y = rec() y.name = 'tom' # 在对象增加属性 print(rec.name, x.name, y.name) print(rec.__dict__.keys()) print(x.__dict__.keys()) print(y.__dict__.keys()) print(y.__class__) print(rec.__bases__) print(upperName(x), upperName(y)) print(x.func(), y.func(), rec.func(x)) """ bob bob tom dict_keys(['__module__', '__dict__', '__weakref__', '__doc__', 'func', 'name']) dict_keys([]) dict_keys(['name']) <class '__main__.rec'> (<class 'object'>,) BOB TOM BOB TOM BOB """
另外,python中对对象方法的调用也有两种形式:
1. obj.method() 2. class.method(obj)
在上面的案例中,就有
x.func() & rec.func(x)这两种操作。对于python而言,都是可行的。
相关文章推荐
- python实现在每个独立进程中运行一个函数的方法
- python中将一个全部为int的list 转化为str的list方法
- python嵌套函数使用外部函数变量的方法(Python2和Python3)
- python中的嵌套类(内部类调用外部类中的方法函数)
- 【廖雪峰 python教程 课后题 切片】利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
- python嵌套函数使用外部函数变量的方法(Python2和Python3)
- Python实现对一个函数应用多个装饰器的方法示例
- 【廖雪峰 python教程 课后题 切片】利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
- 将一个对象转化为字符串形式的默认方法
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- 能把汉字转化为拼音的一个函数
- 一个简单实用的ASP调试函数和使用方法
- 一个从单字节字符串转化成多字节字符串的函数
- js类中获取外部函数名的方法
- VB动态调用外部函数的方法
- js类中获取外部函数名的方法与代码
- 自己写的一个大小写金额转化函数,贴出来大家看看
- zz 高效的中文字符串截取函数,附带一个性能测试方法Benchmark_Iterate
- VB动态调用外部函数的方法
- 判断一个函数里对参数的修改是否对外部产生影响