第六章:类和对象
1.创建类
class Person:
def setName(self,name):
self.name=name
def getName(self):
Return self.name
def greet(self):
print(‘hello,’self.name)
创建对象:
>>foo=Person()
>>bar=Person()
>>foo.setName(‘zq’)
>>foo.greet()
输出:hello,zq
>>bar.name=’zq2’
>>bar.greet()
输出:hello,zq2
>>jkl=bar.greet
>>jkl()
输出:hello,zq2 #因为绑定的是bar的对象,因此还是相当于调用bar对象的方法
可以看出,self实际上是把对象本身传入方法中去了,这就是绑定方法和函数的区别,方法中有self,函数中则没有
2.私有化
class Sec:
def __ina(self):
print(you can not see)
def acc(self):
print(‘message is:’,self.__ina())
>>s=Sec()
>>此时输出s__ina会报错
>>输出s.acc()才能正确输出
特别地:在类的内部的变量,可以被所有实例访问
3.超类
class Filter:
def pre():
print(‘hello’)
class MF(Filter):
def pre():
print(‘hello2’)
MF就是Filter的一个子类,如果检查一个类是否是另一类的子类用内建的函数:
issubclass(A,B) 如果A是B的子类返回True,否则返回False
如果想知道已知类的基类则用下面的函数:
MF.__bases__ 输出所有基类的信息
检查一个对象是否为一个类的实例:
isinstance(对象,类名) 返回True或者False
如果使用__metaclass__=type或从object继承的方式定义类的时候,可以用type(对象名)查看实例的类
多重继承的情况要慎用,假如继承了A,B两个类,如果A和B的方法中有名称一样的那么A会重写B的方法,将B的方法覆盖。
4.接口
getattr(对象名,’类中的方法或者函数’,None)
可以返回类中的方法是否可以调用
setattr(对象名,对象的属性,’值’)
将类中的对象的属性,通过对象名设置为某一个值。
例如:
>>setattr(tc,’name’,’zq’)
>>tc.name
输出:zq
<!--EndFragment-->
相关推荐
《从零开始学Python数据分析与挖掘》官方纠错 P57:代码中的注释有误,第二段代码的最后一个注释,需改成下方: # 第2至4行,2至5列 print(arr2[1:4,1:5])
从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学Python:循环结构.docx从零开始学...
将自己的python学习经历共享上传 挺适合零基础的人员学习 从零开始学python
从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量.docx从零开始学Python:Python语言中的变量...
从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零开始学Python:第一个Python程序.docx从零...
从零开始学Python数据分析与挖掘 从零开始学Python数据分析与挖掘
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开 发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其 他...
从零开始学python
从零开始学Python从零开始学Python
从零开始学Python教程配套代码,零开始学Python开发案例,爬取套图、操作数据库、爬取小说、爬取小说存入数据库、小说网站雏形、日志框架、微信监控、人脸识别、Django后台
将自己的python学习经历共享上传 挺适合零基础的人员学习 从零开始学python
从零开始学Python网络爬虫1
从零开始学Python程式设计(适用Python 3.5以上)畅销回馈版
从零开始学Python AI开发系列141
从零开始学Python AI开发系列351
从零开始学Python AI开发系列121
从零开始学Python AI开发系列431
从零开始学Python AI开发系列471