python入门(05)

高级编程——Python面向对象
1、创建类:
	class 类名:
	    '类的帮助信息'
	    类体
def __init__(self):构造函数,也叫作初始化方法,可以在括号内赋值,不过是默认值,self代表的是类的实例,而非类(用self,还使用其他,看个人喜欢),它代表的是当前对象的地址,而self.class则指向类
	例:创建一个学生类
	class student:
            '这是一个学生类'    #注释信息,可要可不要
            def __init__(self,name age):
                self.name = name
                self.age = age

            def __del__(self):
                print self.__class__.__name__,"del OK"

            def  display(self):
	        print "hello xiaoming"

2、创建实例对象
	stu1 = student("xiaoming",27)
	访问类里面的东西用"."小数点,如student.display(),也可以随意的修改属性(增、删、改、查)
	额外访问属性的方法:
		getattr(实例对象,"属性名")	访问对象的属性
		hasattr(实例对象,"属性名")	检查是否存在某个属性
		setattr(实例对象,"属性名")	设置一个属性,属性存在则改动,不在则创建
		delattr(实例对象,"属性名")	删除属性

3、Python内置属性
	__dict__:类的属性(包含一个字典,由类的数据属性组成)
	__doc__:类的文档字符串,即注释
	__name__:类名
	__module__:类定义所在的模块
	__bases__:类的所有父类构成元素(包含一个由所有父类组成的元组)
	例:
		ret = stu1.__dict__
                print ret

4、Python对象销毁(垃圾回收)即析构函数
	def __del__(self)当对象结束其生命周期时,系统自动执行析构函数,该函数往往用来“清理善后”工作,回收不是立即的,是由解释器在适当的时机,将垃圾对象占用的内存空间回收

5、Python类的继承
	1)在继承中,基类的构造函数不会被自动调用,它需要在其派生类的构造函数中亲自调用
	2)在调用基类的方法时,需要加上基类的类名前缀,且需要带上self传参变量,区别在于类中调用普通函数时不需要带上self参数
	3)Python总是首先查找对应类型的参数,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找(即现在本类中查找调用的函数,找不到再到基类(父类)中找)
	4)方法重写:父类方法的功能无法满足需求时,可以在子类重写该方法,即同样的函数名,只不过是在子类中进行编写
	基础重载方法:
		__init__:构造函数	调用方法:对象=类名(参数)	stu1=student("john",27)
		__del__:析构函数	调用方法:del 对象
		__repr__:转化为供解释器读取的形式	调用方法:repr(对象)
		__str__:用于将值转化为适于人阅读的形式	调用方法:str(对象)
		__cmp__:对象比较	调用方法:cmp(对象,x)
		除此之外还支持运算符重载

6、Python类的属性方法
	类的私有属性:__private__attrs两个下划线开头,声明该属性为私有,不能在类的外部被使用或进行直接访问,在类内部的访问:self.__private__attrs。
	例:
		__data=0    data为私有的,访问方式:self.__data
	类的方法:在类的内部,用def关键字定义一个方法,与一般函数不同,类方法必须包含self参数,且为第一个参数,例:
		def test(self)
	类的私有方法:__private_method(),两个下划线开头,声明该方法为私有方法,不能在类的外部调用,在类的内部调用:self.__private_method,例:
		def __test(self)    self.__test
	单、双、头尾下划线说明
		__foo__:定义的是特殊方法,一般是系统定义名字,类似__init__之类
		_foo:单划线定义的是protected类型的变量,即保护类型,只能允许其本身与子类进行访问,不能用于 from module import *
		__foo:双下划线表示的是私有变量,只是能允许这个类本身进行访问
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值