python面向对象笔记

定义类就是建立模型(模子/印章)
实例化类就是建立真实事物(产品/印章印出的图案)
特征/属性,是类自身包含或指导的数据
能力,以方法体现,是类具有能动性的体现
实例化步骤:
调用new()方法创建实例
new()方法自动从object继承
调用init()方法对其初始化
init()方法在类中定义
添加类说明(docstring):
紧跟类名行之后,以三引号保为的字符串
help(类名) 可查看类说明
class TestClass:
'''
这是类的说明
'''
def pr(self):
print("hello world!")
pass
help(TestClass)

新式类与经典类:
python2.X版本默认是经典类,继承object为新式类
python3.X版本统一为新式类,不用继承object
区别:
经典类继承为深度优先
新式类继承为广度优先
实例属性:
类被实例化以后才会具有的属性
一般在init()方法中创建并初始化
直接使用即定义:self.<属性名>
引用方法:self.<属性名>
self代表类的实例
类外用实例名,属性名方式定义和引用
相同类的不同实例其实例属性是不相关的
一般不建议在init()方法之外中创建和初始化实例属性
一般不推荐类外定义和修改,修改可以单独定义方法
类属性:
类定义后就存在,而且不需要实例化
类属性使得相同类的不同实例共同持有相同变量

-- coding=utf-8 --

class TestClass:
cssa = 'Hello World!!!'
def info(self):
print('yyy:',self.cssa)
pass
rc = TestClass()
rc.info()
rc1 = TestClass()
rc1.info()
TestClass.cssa = 'my name is fahai, i am administrator'
rc.info()
rc1.info()
私有属性:
不提供限制属性访问的关键字(无法限制类的各种属性在类外直接访问)
使用__开头的变量名加以标志,只有类对象自己能访问
使用_开头的变量名加以标志,应该只有类对象及子类能访问(非强制性)

-- coding=utf-8 --

class A:
def init(self):
self.__ab = 0

def info(self):
    print(self.__ab)
pass

a = A()
a.info()
a.ab = 3
a.info()
print(a.
ab)
特殊属性:
doc 保存类说明文档字符串
name 保存类的名称
dict 保存实例属性名称和值
module 保存类所在的文件名
base 保存这个类的父类

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章