东莞网站建设优化推广,为何公司做的网站很丑,法治中国建设网站,中国住房和城乡建设部网站6#类方法#xff0c;属性和迭代器
#为了类是新型的#xff0c;应该把语句__metaclass__type放在模块的开始#xff0c;
#或者子类化内建类object
class newtype(object):pass#构造方法#xff1a;一个对象创建后#xff0c;会立即调用构造方法#xff0c;即__init__
class…#类方法属性和迭代器
#为了类是新型的应该把语句__metaclass__type放在模块的开始
#或者子类化内建类object
class newtype(object):pass#构造方法一个对象创建后会立即调用构造方法即__init__
class stu:def __init__(self):self.num56studentstu()
print(student.num)class cls:def __init__(self,name):self.namenameclcls(TXY)
print(cl.name)#若一个类的构造方法被重写那么就需要调用超类的构造方法
#否则对象可能不会被正确的初始化#调用未绑定的超类构造方法:类名.__init__
class shape:def __init__(self):#在调用一个实例的方法时self参数被自动绑定到实例绑定方法self.area100
class rect(shape):def __init__(self):shape.__init__(self)#实例不会绑定参数可以自由提供self未绑定方法self.width10self.height10recrect()
print(rec.area)
print(rec.width)#使用super函数
class circle(shape):def __init__(self):super(circle,self).__init__()self.r10
circircle()
print(cir.area)
print(cir.r)#成员访问基本的序列和映射规则
__len__(self):返回集合中的项目数量
__getitem__(self,key):返回键对应的值
__setitem__(self,key,value):按一定的方式存储与key相关的value
__delitem__(self,key):对一部分对象使用del语句时被调用
#创建一个无穷序列
import math
def checkindex(key):if not isinstance(key,int):raise TypeErrorif key0:raise IndexErrorclass AS:def __init__(self,start0,step1):self.startstartself.stepstepself.change{}def __getitem__(self,key):checkindex(key)try:return self.change[key]except KeyError:return self.startkey*self.stepdef __setitem__(self,key,value):checkindex(key)self.change[key]value
sAS(1,2)
print(s[4])#子类化列表字典和字符串实现一个和内建列表行为相似的序列,list没有被重写的方法可以直接调用class MyList(list):def __init__(self,*args):super(MyList,self).__init__(*args)self.counter0def __getitem__(self,index):self.count1return super(MyList,self).__getitem__(index)#属性通过访问器定义的特性被称为属性
#创建属性的一种机制property函数
__metaclass__type
class Rect:def __init__(self):self.width0self.height0def getSize(self):return self.width,self.heightdef setSize(self,size):self.width,self.heightsizesizeproperty(getSize,setSize)#创建了属性sizerectRect()
rect.width20
rect.height30
print(rect.getSize())
rect.size(100,100)
print(rect.getSize())运行结果