Python 面向对象之类class和对象基本用法示例
本文实例讲述了Python面向对象之类class和对象基本用法。分享给大家供大家参考,具体如下:
类(class):定义一件事物的抽象特点,usually,类定义了事物的属性和它可以做到的性为
对象(object):是类的实例。
1.基本点
classMyClass(object): message="hello,world" defshow(self): print(self.message)
类名为MyClass有一个成员变量:message,并赋予初值
类中定义了成员函数show(self),注意类中的成员函数必须带有参数self
参数self是对象本身的引用,在成员函数中可以引用self参数获得对象的信息
输出结果:
inst=Myclass()#实例化一个MyClass的对象 inst.show#调用成员函数,无需传入self参数 hello,world
注:通过在类名后面加小括号可以直接实例化类来获得对象变量,使用对象变量可以访问类的成员函数与成员变量。
2.构造函数
构造函数是一种特殊的类成员方法,主要用来创建对象初始化,python中的类构造函数用__init__命名:
classMyClass(object): message='Hello,Developer.' defshow(self): printself.message def__init__(self): print"Constructoriscalled" inst=MyClass() inst.show() >>>
打印结果:
>>>Constructoriscalled >>>Hello,Developer.
注:构造函数不能有返回值,python中不能定义多个构造函数,但可以通过为命名参数提供默认值的方式达到用多种方式构造对象的目的。
3.析构函数
是构造的反向函数,在销毁或者释放对象时调用他们。
python中为类定义析构函数的方法在类定义中定义一个名为__del__的没有返回值和参数的函数。
classMyClass(object): message='Hello,Developer.' defshow(self): printself.message def__init__(self,name="unset",color="black"): print"Constructoriscalledwithparams:",name,"",color def__del__(self): print"Destructoriscalled!" inst=MyClass() inst.show() inst2=MyClass("David") inst2.show() delinst,inst2 inst3=MyClass("Lisa","Yellow") inst3.show() delinst3 >>>
打印结果:
Constructoriscalledwithparams: unset black
Hello,Developer.
Constructoriscalledwithparams: David black
Hello,Developer.
Destructoriscalled!
Destructoriscalled!
Constructoriscalledwithparams: Lisa Yellow
Hello,Developer.
Destructoriscalled!
4.实例成员变量
构造函数中定义self引用的变量,因此这样的成员变量在python中叫做实例成员变量。
def__init__(self,name="unset",color="black"): print"Constructoriscalledwithparams:",name,"",color self.name=name self.color=color
5.静态函数和类函数:
python支持两种基于类名访问成员的函数:静态函数,类函数。
区别在于:类函数有一个隐形参数cls可以用来获取类信息。而静态函数没有该函数。
静态函数用装饰器:@staticmethod定义
类函数使用装饰器:@classmethod定义
classMyClass(object): message='Hello,Developer.' defshow(self): print(self.message) print("Hereis%sin%s!"%(self.name,self.color)) @staticmethod defprintMessage(): print("printMessageiscalled") print(MyClass.message) @classmethod defcreateObj(cls,name,color): print("Objectwillbecreated:%s(%s,%s)"%(cls.__name__,name,color)) returncls(name,color) def__init__(self,name="unset",color="black"): print("Constructoriscalledwithparams:",name,"",color) self.name=name self.color=color def__del__(self): print("Destructoriscalledfor%s!"%self.name) MyClass.printMessage() inst=MyClass.createObj("Toby","Red") print(inst.message) delinst
输出结果:
printMessageiscalled
Hello,Developer.
Objectwillbecreated:MyClass(Toby,Red)
Constructoriscalledwithparams: Toby Red
Hello,Developer.
DestructoriscalledforToby!
6.私有成员
python使用指定变量名格式的方法定义私有成员,即所有以双下划线“__”开始命名的成员都为私有成员。
classMyClass(object): def__init__(self,name="unset",color="black"): print"Constructoriscalledwithparams:",name,"",color self.__name=name self.__color=color def__del__(self): print"Destructoriscalledfor%s!"%self.__name inst=MyClass("Jojo","White") delinst
输出结果:
Constructoriscalledwithparams: Jojo White
DestructoriscalledforJojo!
注明:书《Python高效开发实战Django,Tornado,Flask,Twisted》总结
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。