__doc__ 查看尖的描述信息 __module__表示当前操作的对象所在的模块 __class__表示当前操作的对象所属的类 __init__构造方法 通过类创建对象自动执行 __del__析构方法,当前对象在内存中被释放自动斩妖执行 __call__对象后面加括号触发执行 __dict__查看类或对象中的成员 __str__如果一个类中定义了此方法,那么打印此类对象时,输出此方法的返回值 __getitem__当类中定义了一个字典的属性成员,可以获取 __setitem__设置修改类中字典…
unittest框架是python自带的,所以直接import unittest即可,定义测试类时,父类是unittest.TestCase. 可实现执行测试前置条件.测试后置条件,对比预期结果和实际结果,检查程序的状态,生成测试报告. 且断言的话unittest框架很方便. 在这主要记录下setUp()和tearDown()这两个的问题,每次执行一个测试用例(test开头的方法),就会执行一次setUp()和tearDown(), 导致执行多个测试用例时,会反复的打开浏览器操作,这个很浪费时间…
from django.db import models class Person(models.Model):     name = models.CharField(max_length=30)     age = models.IntegerField()   name 和 age 等字段中不能有 __(双下划线,因为在Django QuerySet API中有特殊含义(用于关系,包含,不区分大小写,以什么开头或结尾,日期的大于小于,正则等) 也不能有Python中的关键字,name 是合…
#!/usr/bin/env python #ascii,对象类中找__repr__,获取其返回值 class Foo : def __repr__(self): return "hello" obj = Foo() r = ascii(obj) print(r )…
Python对于类的成员没有严格的访问控制限制,这与其他面向对象的编程语言是有所区别的. 关于私有方法其实和私有属性差不多,有如下要点: 1.通常我们约定,两个下划线开头的方法是私有方法. 2.类内部可以访问私有方法. 3.类外部不能直接访问私有方法,也就是不同通过对象.方法名直接调用. 4.类外部可以通过 _类名__私有方法名访问私有方法. 示例: # 在函数名的前面添加两个下划线,此时该函数被称为私有函数 # 只能在当前类中被直接调用,不同通过对象.方法名调用 # 私有函数 class St…
类的特殊成员方法 1. __doc__ 表示类的描述信息 class Func(object): '''__doc__方法是用来打印类的描述信息''' def tell(self): pass def enroll(self): pass print(Func.__doc__) # 输出:类的描述信息运行结果如下:__doc__方法是用来打印类的描述信息 __doc__是用来打印类的描述信息.就是类的注释.     2.__module__和__class__ __module__表示当前操作的…
默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量.在python中定义私有变量只需要在变量名或函数名前加上 ”__“两个下划线,那么这个函数或变量就是私有的了.在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,也就是说,类的内部定义中,所有以双下划线开始的名字都被"翻译"成前面加上单…
Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create' class childA(Base): def __init__(self): print 'creat A ', Base.__init__(self) class childB(Base): def __init__(self): print 'c…
在python的类中,经常会写self,代表对象自己.如下例: #coding=utf-8 class Foo: def __init__(self, name): self.name = name def hi(self): print self.name if __name__ == '__main__': foo01 = Foo('letian') foo01.hi() print type(Foo) print type(foo01) print id(Foo) print id(foo…
下面这个URL解释得比较清楚. http://python.jobbole.com/86787/?utm_source=group.jobbole.com&utm_medium=relatedArticles ================ 首先得说明的是,Python的类分为经典类 和 新式类经典类是python2.2之前的东西,但是在2.7还在兼容,但是在3之后的版本就只承认新式类了新式类在python2.2之后的版本中都可以使用 经典类和新式类的区别在于: 经典类是默认没有派生自某个基类…
编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的功能. public class account { private String zhanghao; private double yue; account(String zh) { zhanghao=zh; } account(String zh,double ck) { zhanghao=zh…
title: Python 装饰器装饰类中的方法 comments: true date: 2017-04-17 20:44:31 tags: ['Python', 'Decorate'] category: ['Python'] --- 目前在中文网上能搜索到的绝大部分关于装饰器的教程,都在讲如何装饰一个普通的函数.本文介绍如何使用Python的装饰器装饰一个类的方法,同时在装饰器函数中调用类里面的其他方法.本文以捕获一个方法的异常为例来进行说明. 有一个类Test, 它的结构如下: clas…
好久没上了,Python还在学--最近进度有点慢... 下面代码记录了一个不太好理解的点,自己写了个小例子,总算是理顺了. B类想要调用A类,自己在网上看了一下其他人的回复:创建A类的实例,直接调用这个实例即可. 其实是对的...主要是自己在写类,所有老想着面向过程去了....不应该啊不应该.. 记录一下,大神们勿喷.... 也给后面来的新萌参考吧-(害羞~本人小白) class name(): def __init__(self,name): self.new_name = name def…
Python类中的self到底是干啥的 Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上.后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了. 首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的.self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数. self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗(为了和其他编…
[转]python类中super()和__init__()的区别 单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create' class childA(Base): def __init__(self): print 'creat A ', Base.__init__(self) class childB(Base): def __init__(self): print '…
原文地址https://www.cnblogs.com/ant-colonies/p/6718388.html 1.Python中self的含义 self,英文单词意思很明显,表示自己,本身. 此处有几种潜在含义: 1.这里的自己,指的是,实例Instance本身. 2.同时, 由于说到“自己”这个词,都是和相对而言的“其他”而说的:而此处的其他,指的是,类Class,和其他变量,比如局部变量,全局变量等. 此处的self,是个对象(Object),是当前类的实例. 因此,对应的self.val…
__init__():__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的初始化.注意,这个名称的开始和结尾都是双下划线.代码例子: #!/usr/bin/python# Filename: class_init.pyclass Person:    def __init__(self, name):        self.name = name    def sayHi(self):        print 'Hello, my name is',…
这里需要说明一下: python3中,类定义默认继承object,所以写不写没有区别 但在python2中,并不是这样 所以此内容是针对python2的,当然python3默认继承,不代表我们就傻乎乎的让程序自动继承,自己却不知道其底层区别,所以了解此内容还是很有必要的! 测试代码如下: # -.- coding:utf-8 -.- # __author__ = 'zhengtong' class Person: """ 不带object """…
from:http://blog.csdn.net/jinping_shi/article/details/52433867 Python多进程库multiprocessing中进程池Pool类的使用 问题起因 最近要将一个文本分割成好几个topic,每个topic设计一个regressor,各regressor是相互独立的,最后汇总所有topic的regressor得到总得预测结果.没错!类似bagging ensemble!只是我没有抽样.文本不大,大概3000行,topic个数为8,于是我…
注:红色是我增加的注释 add by zhj:其实python中的import, from-import语句是创建新的同名变量指向引入的模块和模块属性,这也就解释了下面的情况. 我们应尽量不用全局变量,比如当一个模块中的两个函数要用同一个变量时,我们可以尝试把这两个函数写在一个类中,而该变量定义 成类变量.如果非要用全局变量,建议把它们全部定义在一个类中,通过“类名.类变量名”来使用它们,这样OK了,根本不用什么globle 关键字了. 原文:http://www.2cto.com/kf/201…
本文环境:Python 2.7 一个类的三个对象实例的属性被同时修改 有段代码如下: class task_queue: queue=[] def append(self,obj): self.queue.append(obj) def print_queue(self): print self.queue if __name__=="__main__": a=task_queue() b=task_queue() c=task_queue() a.append('tc_1') a.p…
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的对象包括 Widget:用来渲染成HTML元素的工具,如:forms.Textarea对应HTML中的<textarea>标签 Field:Form…
在python的类中,制作一个装饰器的函数, class A: def wrapper(func): ###装饰器 def wrapped(self,*arg,**kwargs) ... return wrapped @ wrapper ###装饰mix def mix(): ... 当调用mix的时候,self.mix() ,会将self等参数传入 wrapper 中来吗?答案为否. 当wrapper作为装饰器的并且@wrapper这种方式作为装饰的时候,wrapper就跟普通的函数一样,仅仅…
item系列 __getitem__(self, item) 对象通过 object[key] 触发 __setitem__(self, key, value) 对象通过 object[key] = value 触发 __delitem__(self, key) 对象通过 del object[key] 触发 class Func: def __getitem__(self, item): # object[item] 触发 return self.__dict__[item] def __se…
在python中,不像c#/java类语言,支持类的私有方法,这点有点像objc,虽然objc可以通过扩展extension来实现,但源于objc的运行时特性,我们还是可以通过非常手段来进行访问的.不过这点说白了,好像c#中也可以通过指定BindingFlags.NonPublic的方式结合反射来调用. 假设有如下一个python类: class Securityp(object): def __inaccessible(self): print "Bet you can't see me...…
任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建.初始化.使用.垃圾回收,不同的阶段由不同的方法(角色)负责执行. 定义一个类时,大家用得最多的就是 __init__ 方法,而 __new__ 和 __call__ 使用得比较少,这篇文章试图帮助大家把这3个方法的正确使用方式和应用场景分别解释一下. 关于 Python 新式类和老式类在这篇文章不做过多讨论,因为老式类是 Python2 中的概念,现在基本没人再会去用老式类,新式类必须显示地继…
在python中,我们可以拦截对象的所有特性访问.通过这种拦截的思路,我们可以在旧式类中实现property方法. __getattribute__(self, name) #当特性name被访问时自动调用(只能在新式类中使用) __getattr__(self, name) #当特性name被访问且对象没有相应的特性时被自动调用 __setattr__(self, name, value) #当试图给特性name赋值时会被自动调用 __delattr__(self, name) #当试图删除特…
孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我们定义类时是否在类的内部代码块中定义过它们,这些私有方法都是存在的.比如已经知道的 __init__ 方法就是其中一个. 一.__str__ 此方法将输出在本身的相关信息文本. 测试: class ghlh(object): name='孤荷凌寒' qq='578652607' newghlh=gh…
首先,方法是类内部定义的函数,所以方法是类的属性而不是实例的属性. 其次,方法只能在所属的类拥有实例的时候才能被调用.当存在一个实例的时候,我们可以说方法被绑定到实例.如果没有实例,那么我们就说方法是未绑定的. 最后,任何一个方法定义的第一个参数都是self.self是调用此方法的实例. 再强调一下绑定与未绑定.不管绑定与否.方法的代码都是一样的,区别只是是否存在一个实例来调用这个方法. ok.我们用例子来理解一下上面的话.首先是第一句. >>> class A: ... def foo…
一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__()方法中形参:self.当Python通过__init__()方法创建实例时,将自动传入一个实参self,与类相关联的方法都会自动传递实参self,它是指向实例本身的引用,实例可以访问类中的属性和方法.. 以self为前缀的变量,都供类中的所有方法使用.self.num= num中num获取传递给n…