#!coding=utf-8
#python 类的定义
class Account(object):
num_accounts = 0 #此处的 num_accounts 为类变量,所有的实例共享
def __init__(self,name,blance): #__init__ 在类的实例创建后被立即调用。它可能会引诱你称之为类的构造函数,
#但这种说法并不正确。说它引诱,是因为它看上去像 (按照习惯,__init__ 是类中第一个定义的方法),
#行为也像 (在一个新创建的类实例中,它是首先被执行的代码),并且叫起来也像
#(“init”当然意味着构造的本性)。说它不正确,是因为对象在调用 __init__ 时已经被构造出来了,
#你已经有了一个对类的新实例的有效引用。但 __init__ 是在 Python 中你可以得到的最接近构造函数的东西,
#并且它也扮演着非常相似的角色。
self.name = name
self.blance = blance
Account.num_accounts +=1
def __del__(self):
Account.num_accounts-=1
def inqirey(self):
return self.blance
#__init__ 方法是可选的,但是一旦你定义了,就必须记得显示调用父类的 __init__ 方法
#(如果它定义了的话)。这样更是正确的:无论何时子类想扩展父类的行为,后代方法必须在适当的时机,使用适当的参数,显式调用父类方法
#访问类的成员的方法
print Account.num_accounts
print Account.__init__
class Money(object):
def __init__(self,types,num,name,action):
self.types = types
self.num = num
self.name=name
class Test(Money,Account):#python类的多继承,python虽然支持多继承,但是最好使用单继承,免得混淆
def inqirey(self):
super(Test,self).inqirey() #调用父类的inqirey()方法
print "hello"
pass
#t = test('jack',4)
#print Test.__mro__ 要找到使用了多重继承的属性,可以在列表中队所有基类按从“最特殊”的类到“最不特殊的类这种进行排列,
#然后再搜索属性时,就会按账号顺序搜索列表,直到找到该属性
#第一个定义,对于任何一个类,通过打印它的__mro__属性即可看到基类的顺序,例如Test类中的name属性,如果要打印name属性,到底是Money,中的name,还是Account的name,是按照基类的继承属性来的
*****静态方法
#@staticmethod 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类进程操作,
#如果在编写类时需要采用很多种不同方式来创建新实例,则常常使用静态方法
import time
class Date(object):
def __init__(self,year,month,day):
self.year = year
self.month = month
self.day = day
def test(self):
print "hello"
@staticmethod
def now():
t = time.localtime()
return Date(t.tm_year,t.tm_mon,t.tm_mday)
@staticmethod
def tomorrrow():
t = time.localtime(time.time()+86400)
return Date(t.tm_year,t.tm_mon,t.tm_mday)
a = Date(1967,4,5)
b = Date.now()
print b.day
c = Date.tomorrrow()
print c.day
*****类方法
#@classmethod 类方法是将类本身作为对象进行操作的方法,与实例方法不同,因为根据约定,类是作为第一个参数(名为cls)传递的,实例方法是self作为第一个参数
class Times(object):
factor = 1
@classmethod
def mul(cls,x):
return cls.factor*x
class TwoTimes(Times):
factor = 2
x = TwoTimes.mul(4) #调用Times.mul(TwoTimes,4)
*****特性
#@property 支持以简单形式访问后面的方法,无需像平常一样添加额外的()调用该方法
import math
c = None
class Circle(object):
def __init__(self,radius):
self.radius = radius
@property
def area(self):
return math.pi*self.radius**2
c = Circle(5)
print c.area
#数据封装和私有属性
#私有属性,其他子类是不能访问的
#类中所有以双下划线(__)例如:__foo ,都会自动变形,形成具有_类名__foox形式的新名称,这提供了一种在类中包含私有属性和私有方法的有效方式
#,因为派生类中使用的私有名称不会与
#基类中使用的相同私有名称发生冲突
class A(object):
def __init__(self):
self.__x = 3 #变形为self._A__x
def __spam(self):
pass #变形为_A__spam()
def bar(self):
self.__spam #调用A.__spam()
class B(A):
def __init__(self):
A.__init__(self)
self.__x = 37
def __spam(self):
print "hello" #变形为_B__spam()
class T(object):
__slots__ = ('name','blance')
def __init__(self):
self.name = 'jack'
self.blance = '120'
self.hometowm='wuhan'
class M(T):
pass
相关推荐
python类和对象
【标题】"ktv.zip"涉及的是一个基于Python开发的KTV点歌系统,它集成了8种不同的歌曲分类功能,同时拥有一个图形用户界面(GUI)。这个项目旨在提供一个方便、直观的点歌体验,使得用户在KTV环境中能够轻松浏览和...
在这个"python类的学习资源包.zip"中,我们很显然会探讨关于Python类的深入理解和实践技巧。 在Python中,类通过`class`关键字定义。例如: ```python class MyClass: def __init__(self, param1): self.param1 ...
Python 类QQ即时通讯软件是一种基于Python编程语言,利用 PyQt 框架开发的即时通讯(IM)应用。PyQt 是一个强大的图形用户界面库,它为 Python 提供了与 Qt 框架的接口,允许开发者创建出功能丰富的桌面应用程序,如...
1. 定义Python类:创建一个新的Python类,如`CPyTokenizer`,该类将作为与CPython tokenizer交互的接口。 2. 绑定C函数:使用Python的C API,将CPython的tokenizer函数绑定到新定义的Python类的方法中,例如`...
基于python类的编程,主要运用一些基础的python知识,也是自己学习python一段时间的经验体会
该项目是一套基于Python语言的Python类教学设计源码,总计包含55个文件,涵盖25个xlsx表格文件、24个Python源代码文件、2个Python编译文件、2个PNG图片文件、1个DS_Store文件、1个Markdown文件。这些资源旨在辅助...
Python类和模块(Class,_Module)【Python一周入门教程6】
Python类和对象
Python 对象和类习题及答案中文 在本节中,我们将学习 Python 中的对象和类,并通过习题和答案来巩固相关知识点。 定义对象的类 在 Python 中,类是定义对象的模板或蓝图。类是定义相同类型对象的模板,蓝图或...
attrs-无需模板的 Python 类
ChatGPT帮你完成Python类代码 场景
Python类方法的测试和断言
如果某类里没有__init__方法函数,通过类名字创建的实例对象为空,切没有初始化;如果有此方法函数,通常作为类的第一个方法函数,有点像C++等语言里的构造函数。...以上这篇浅谈Python类里的__init__方法函数,P
Python类方法和静态方法
tropo-webapi-python, 一组 python 类,用于处理对流层化 WebAPI Tropo python-模块tropo - TropoPython模块。 这个模块实现了一组类和方法,用于在 http://www.tropo.com/ 为Tropo通信服务操作 Web API 。有关这里...
python 类和对象的区别及相关代码
python装饰器是一个用于封装函数、方法或类的代码的工具,用来显式指定管理它们的代码。一次编写,可用于多种不同的情况。在python 的流行框架中,装饰器应用越来越广泛。用类设计装饰器,可以利用实例属性保持装饰...
对Python类基础理解的思维导图
genetic-algorithm_for_python_class遗传算法的python类实现_genetic-algorithm