基础知识回顾——面向对象编程
在进入面向对象编程之前,希望对python常见内建函数做个整理,参考来自官网;
常见内建函数
chr(number) | 返回ASCII码为给定数字的字符 |
ord(char) | 返回给定单字符(长度为1的字符串或者Unicode字符串)的ASCII值 |
all(iterable) | 如果所有iterable的元素均为真则返回True, 否则返回False |
any(iterable) | 如果有任一iterable的元素为真则返回True,否则返回False |
callable(object) | 检查对象是否可调用 |
dir([object]) | 选择性地列出给定对象的(大多数)特性 |
help([object]) | 调用内建的帮助系统,或者打印给定对象的帮助信息 |
reload(module) | 重载入一个已经载入的模块并将其返回 |
repr(object) | 返回表示对象的字符串,一般作为eval的参数使用 |
eval(string[, globals[, locals]]) | 对包含表达式的字符串进行计算 |
input([prompt]) | 等同于eval(raw_input(prompt) |
raw_input([prompt]) | 将用户输入的数据作为字符串返回,可选择使用给定的提示符prompt |
str(object) | 返回表示给定对象object的格式化好的字符串 |
type(object) | 返回给定对象的类型 |
面向对象编程
面向对象是一种程序设计方法,相对面向过程而言,把函数进行分类和封装。
面向对象概念初识 |
||
概念 |
说明 |
例子 |
类 |
现实世界中的一些事物抽象封装。以关键字class开头,后接类名及冒号。 |
class Person: name = ‘Lucy’ def SetAge(self,age): Self.age = age |
对象 |
类定义后的一个实例,对象包括属性和方法。对象分为类对象,实例对象 |
|
类对象 |
类定义完成之后即产生了一个全局的类对象,可以通过类对象来访问类中的属性和方法。 |
Person 类对象 |
实例对象 |
实例对象是对类的实例化,可以实例化多个 |
p = Person() 实例对象 |
属性 |
形容对象是什么或者能干什么 |
|
类属性 |
类属性所有实例对象所共有的属性,在类外,可以通过类对象定义或修改,在类里面,只能在类方法中进行定义或修改。 |
name = ‘Lucy’ 类属性 Person.country = ‘china’ 通过类对象定义 |
实例属性 |
某个实例对象的属性,当与类属性冲突时,实例属性屏蔽类属性。 |
p.country = ‘china’ 通过实例对象定义 |
私有属性 |
以双下划线开头,不能在类的外部被直接访问 |
__name = ‘Lucy’ |
函数 |
完成特定功能的代码块,便于重用 |
def SetAge(age): return age |
方法 |
方法同函数功能一样,写在类中,同对象联用 |
def SetAge(self,age): Self.age = age |
类方法 |
含@classmethod修饰符且必须有cls参数的方法,可以通过实例对象和类对象访问 |
@classmethod def SetAge(cls,age): cls.age = age |
实例方法 |
含self的方法,只能通过实例对象访问 |
def SetAge(self,age): Self.age = age |
静态方法 |
含@staticmethod修饰符的方法,只能通过类对象访问 |
@staticmethod
def SetAge(age): return age |
常见内置方法
类的内置方法 |
|
内置方法名 |
说明 |
__init__(self,...) |
初始化对象,在创建新对象时调用 |
__del__(self) |
释放对象,在对象被删除之前调用 |
__new__(cls,*args,**kwd) |
实例的生成操作 |
__str__(self) |
在使用print语句时被调用 |
__call__(self,*args) |
把实例对象作为函数调用 |
__getattr__(s,name) |
获取属性的值 |
__setattr__(s,name,value) |
设置属性的值 |
__delattr__(s,name) |
删除属性的值 |