一.类的定义 1.类是为了面向更多的对象 2.类包括属性和方法 3.形式 class 类名: 类的内容 二.OO的特征 1.封装 2.继承 3.多态 三.self参数 类中定义函数时,需要加入self参数,该参数的作用是将类的方法分给不同的对象,具体原理不需要了解,只需知道类的方法内总需有self参数即可
>>> class Tab: def fun1(self): print('like') >>> c=Tab() >>> c.fun1() like四.init魔法方法
class Ball: def __init__(self,name): self.name=name def kick(self): print('我叫%s,该死的,谁提我'%self.name) >>> b=Ball('tudou')#运用魔法方法后,括号里必须有参数,这样直接执行类里的init方法,再调用kick方法,无需参数直接返回想要的输出 >>> b.kick() 我叫tudou,该死的,谁提我 >>> class Ball: def __init__(self,name='tudou'):#init方法的参数也可以设置默认值,这样引用类时不加参数也不会报错 self.name=name def kick(self): print('我叫%s,该死的,谁提我'%self.name) >>> >>> a=Ball() >>> a.kick() 我叫tudou,该死的,谁提我五.公有和私有 公有即是在外部可以访问对象内部的属性和方法,而设置为私有则不能直接方粉对象内部的属性和方法
>>> class Person: name='u' >>> p=Person() >>> p.name#公有可以直接访问 'u' >>> class Person: __name='u'#在变量前加双下划綫设置为私有 >>> p=Person() >>> p.name Traceback (most recent call last): File "<pyshell#27>", line 1, in <module> p.name AttributeError: 'Person' object has no attribute 'name' >>> p.__name Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> p.__name AttributeError: 'Person' object has no attribute '__name' #私有直接被访问均会报错 >>> class Person: __name='u' def gatname(self): return self.__name >>> p=Person() >>> p.gatname() 'u' >>> p._Person__name 'u' #可通过以上两种方法进行访问