从零开始学Python
第六章:类和对象
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-->
- 从零开始学Python3之十——异常
- 用PYTHON从零开始创建区块链
- Python从零开始
- 从零开始学Python08作业思路:开发简单的FTP
- Python爱好者社区,从零开始系列连载作业
- 从零开始学Python第一周:Python基础(上)
- 《从零开始学Python网络爬虫》CH8
- 从零开始学Python第二天
- 从零开始python小案例001闰年计算器002每月天数计算器
- 从零开始Windows环境下安装python+tensorflow
- 面向初学者的机器学习教程:从零开始使用Python实现一个神经网络
- 从零开始学Python人脸识别技术,人工智能不过如此!
- 从零开始用Python构造决策树(附公式、代码)
- building machine learning system with Python 学习笔记--从零开始机器学习(2)第一章
- Python从零开始 day3
- python自己动手从零开始搭建FTP服务器2 FTP初步框架
- 从零开始人工智能(一)——飞速看尽Python基础
- [Python]从零开始学python——Day07 面向对象
- 从零开始用Python学习MachineLearning
- Python爬虫项目班 从零开始实现爬虫系统 百度网盘下载 百度云