在python中存在一些前面和后边都加上两个下划线的函数,这种函数会在一些特殊的情况下被调用,而不是根据他们的名字被调用。下面详细介绍几个重要的函数.

__init__函数,这类进行初始化的函数,在创建一个具体的对象的时候会自动的调用。

class People:

def __init__(self):

self.university="shandong"

def getUniversity(self):

return self.university

xiang=People() #when you create an object, the __init__ method will be excuted dynamically

print xiang.getUniversity()

class student(People):

def __init__(self):

People.__init__(self)

name="xiang"

gao=student()

print gao.getUniversity()

上述函数中在运行xiang=People()的时候会自动调用__init__()函数,而子类继承父类的__init__函数的时候使用的是Father.__init__(self)其中self表示子类自身。

class counterList(list):

def __init__(self,*args):

self.counter=0

list.__init__(self,*args)

def __getitem__(self,index): #it will be exceted dynamically when you use []

self.counter+=1

print "I am running"

return list.__getitem__(self,index)

count=counterList(range(0,10))

print count.counter

print count[0]+count[1]getitem()函数在使用[ ]时自动调用。

迭代器函数的使用:

class Fibs:

def __init__(self):

self.a=0

self.b=1

def next(self):

self.a,self.b=self.b,self.a+self.b

return self.a

def __iter__(self):

return self

fibs=Fibs()

for f in fibs:

if f>5:

print f

break使用其自带的迭代器必须实现next和__iter__函数。

此外python中还存在可以直接使用类名调用的函数静态函数和类变量函数

class MyClass:

@staticmethod #create static method

def smath():

print "this is static method"

@classmethod#create class method

def cmath(clf):

print "this is class method"

MyClass.smath()

MyClass.cmath()

python 魔法方法什么时候用_python学习之魔法方法的调用相关推荐

  1. python 魔法函数是什么意思_Python 中的魔法函数

    魔法函数是Python中的特性,学习好魔法函数将有助于我们写出优秀的pythonic(优雅的.地道的.整洁的)代码,同时因为Python语言的特性,我们在进行框架设计的时候除了设计模式等高级技能,魔法 ...

  2. python第三项基础知识_Python学习心得——基础知识(三)

    一.常见的Python种类 1.Cpython 使用C语言实现,Python的官方版本,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上.我们目前 ...

  3. python中的排序方法都有哪些_Python中的排序方法sort(),sorted(),argsort()等

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorte ...

  4. python创建文件对象的函数_Python学习笔记之—— File(文件) 对象常用函数

    file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 1.file.close() close() 方法用于关闭一个已打开的文件.关闭后的文件不能再进行读写操作, 否则会触 ...

  5. python通过什么对象连接数据库步骤_Python连接MySQL数据库方法介绍(超详细!手把手项目案例操作)...

    本文涉及到的开发环境:操作系统 Windows 10 数据库 MySQL 8.0 Python 3.7.2 pip 19.0.3 两种方法进行数据库的连接分别是PyMySQL和mysql.connec ...

  6. python中bd是什么属性_Python学习:4.运算符以及数据类型解析

    运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...

  7. python turtle库画七彩蟒蛇_Python学习之turtle库和蟒蛇绘制程序

    Python的函数库 Python语言与C语言Java类似,可以大量使用外部函数库包含在安装包中的函数库:. 比如math, random, turtle等其他函数库,其他函数库用户根据代码需求自行安 ...

  8. python我想对你说_python学习第20天----面向对象复习、__repr__

    1.面向对象 #问题: ①写代码时,什么时候用面向对象:处理比较复杂的角色之间的关系(代码量大,功能多的时候),如复杂的电商程序.公司/学校的人事管理的系统:提高代码的可读性,清晰度(无论是开发者还是 ...

  9. python123怎么绑定慕课_python学习30——绑定方法与非绑定方法

    一 绑定方法与非绑定方法 ​ 类中定义的函数分为两大类:绑定方法和非绑定方法 ​ 其中绑定方法又分为绑定到对象的对象方法和绑定到类的类方法. ​ 在类中正常定义的函数默认是绑定到对象的,而为某个函数加 ...

最新文章

  1. mac os 下 Android Studio设置真机调试
  2. Java注释@interface的用法【转】
  3. 安装python有什么用_什么是Python Wheels?为什么要关心它?,python有什么用
  4. 【资源下载】K8S部署InfluxDB1.8.4完整步骤及部署清单文件下载
  5. 动态规划训练12 [G - You Are the One HDU - 4283 ]
  6. mxm智能教育机器人无法智能对话_零代码使用腾讯TBP打造智能对话机器人
  7. Java中的SPI(Service Provider Interface介绍及示例
  8. 【孤偏盖全唐】Linux中find命令完整用法
  9. 植物大战僵尸的java源代码_植物大战僵尸java源码
  10. python 回调函数的使用_Python回调函数用法实例详解
  11. 打垮你的永远不是压力,而是选择的能力!
  12. Simulink仿真---clark变换、反clark变换
  13. 小白学习java第11天多态抽象类接口
  14. i5 12490f和i5 12400f的区别
  15. 访问交流 | 成都市高新区领导团莅临零数科技考察指导
  16. 如何在内网环境下解决rpm包的问题
  17. 随机数rand和srand的用法
  18. Java程序:停车场计费
  19. 搜狐html5,手机搜狐率先发力Html5技术
  20. Stackoverflow介绍

热门文章

  1. HTML5 Canvas编写五彩连珠(2):画图
  2. 掘安杯 web snake 适合新手
  3. 双向链表、环形链表及约瑟夫问题
  4. N-苯基马来酰亚胺的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  5. vue+springboot 制作属于自己的个人网站 ① vue前端部署
  6. 贝叶斯分类方法-例题
  7. 是时候让企业拥有“AI自由”了
  8. McObject新版eXtremeDB v.8.0在E8存储上运行STAC基准测试创造了多个记录
  9. 第六十四章 Caché 函数大全 $STACK 函数
  10. SNAT实现共享上网(1)