加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

史上最全Python面向工具编程

发布时间:2019-03-26 23:11:22 所属栏目:建站 来源:浪子燕青
导读:面向工具编程和函数式编程(面向进程编程)都是措施计划的要领,不外稍有区别。 面向进程编程: 1. 导入各类外部库 2. 计划各类全局变量 3. 写一个函数完成某个成果 4. 写一个函数完成某个成果 5. 写一个函数完成某个成果 6. 写一个函数完成某个成果 7. 写一

这两者也是Python内建,无需自界说。

  1. class Foo: 
  2.     pass 
  3. obj = Foo() 
  4. print(obj.__module__) 
  5. print(obj.__class__) 

运行功效:

  1. main 

4. del()

析构要领,当工具在内存中被开释时,自动触发此要领。

注:此要领一样平常无须自界说,由于Python自带内存分派和开释机制,除非你必要在开释的时辰指定做一些举措。析构函数的挪用是由表明器在举办垃圾接纳时自动触发执行的。

  1. class Foo: 
  2.     def __del__(self): 
  3.         print("我被接纳了!") 
  4.  
  5. obj = Foo() 
  6. del obj 

5. call()

假如为一个类编写了该要领,那么在该类的实例后头加括号,可会挪用这个要领。

注:结构要领的执行是由类加括号执行的,即:工具 = 类名(),而对付call() 要领,是由工具后加括号触发的,即:工具() 可能 类()()

  1. class Foo: 
  2.     def __init__(self): 
  3.         pass 
  4.     def __call__(self, *args, **kwargs): 
  5.         print('__call__') 
  6. obj = Foo()     # 执行 __init__ 
  7. obj()       # 执行 __call__ 

可以用Python内建的callable()函数举办测试,判定一个工具是否可以被执行。

  1. callable(Student()) 

运行功效:

  1. True 

6. dict

列出类或工具中的全部成员!很是重要和有效的一个属性,Python自建,无需用户本身界说。

  1. class Province: 
  2.     country = 'China' 
  3.     def __init__(self, name, count): 
  4.         self.name = name 
  5.         self.count = count 
  6.     def func(self, *args, **kwargs): 
  7.         print('func') 
  8. # 获取类的成员 
  9. print(Province.__dict__) 
  10. # 获取 工具obj1 的成员  
  11. obj1 = Province('HeBei',10000) 
  12. print(obj1.__dict__) 
  13. # 获取 工具obj2 的成员  
  14. obj2 = Province('HeNan', 3888) 
  15. print(obj2.__dict__) 

7. str()

假如一个类中界说了str()要领,那么在打印工具时,默认输出该要领的返回值。这也是一个很是重要的要领,必要用户本身界说。

下面的类,没有界说str()要领,打印功效是:

  1. class Foo: 
  2.     pass 
  3. obj = Foo() 
  4. print(obj) 
  5. 界说了__str__()要领后,打印功效是:'jack'。 
  6. class Foo: 
  7.     def __str__(self): 
  8.         return 'jack' 
  9. obj = Foo() 
  10. print(obj) 

8、getitem__()、_setitem_()、__delitem()

取值、赋值、删除这“三剑客”的套路,在Python中,我们已经见过许多次了,好比前面的@property装饰器。

Python中,标识符后头加圆括号,凡是代表执行或挪用要领的意思。而在标识符后头加中括号[],凡是代表取值的意思。Python计划了getitem()、setitem()、delitem()这三个非凡成员,用于执行与中括号有关的举措。它们别离暗示取值、赋值、删除数据。

也就是如下的操纵:

  1. a = 标识符[] : 执行__getitem__要领 
  2. 标识符[] = a  : 执行__setitem__要领 
  3. del 标识符[] : 执行__delitem__要领 

假若有一个类同时界说了这三个邪术要领,那么这个类的实例的举动看起来就像一个字典一样,如下例所示:

  1. class Foo: 
  2.     def __getitem__(self, key): 
  3.         print('__getitem__',key) 
  4.     def __setitem__(self, key, value): 
  5.         print('__setitem__',key,value) 
  6.     def __delitem__(self, key): 
  7.         print('__delitem__',key) 
  8. obj = Foo() 
  9. result = obj['k1']      # 自动触发执行 __getitem__ 
  10. obj['k2'] = 'jack'      # 自动触发执行 __setitem__ 
  11. del obj['k1']             # 自动触发执行 __delitem__ 

9. iter()

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读