面向对象三大特性:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation)
类:对具有相同数据和方法的一组对象的描述或定义。
对象:对象是一个类的实例。
实例(instance):一个对象的实例化实现。
标识(identity):每个对象的实例都需要一个可以唯一标识这个实例的标记。
实例属性(instance attribute):一个对象就是一组属性的集合。
实例方法(instance method):所有存取或者更新对象某个实例一条或者多条属性的函数的集合。
类属性(classattribute):属于一个类中所有对象的属性,不会只在某个实例上发生变化
类方法(classmethod):那些无须特定的对性实例就能够工作的从属于类的函数。
#!/usr/bin/env python
#coding:utf-8
class people:#类(创建一个人的类)
def __init__(self,name,age,sex): #__init__是初始化对象,在实例化对象前完成,根据对象实例时自动执行。
self.Name = name # 当一个类定义了__ init __ 方法后,类实例化时会自动调用 __ init __ ().
self.Age = age
self.Sex = sex
def talk(self):#函数,在类中叫方法必须要带self这个形式参数,不管有没有参数
print("hello world")
class man(people):#创建一个男人的子类,他继承了父类中的所有属性和方法
def __init__(self,name,age,sex,job):
people.__init__(self,name,age,sex)
self.job = job
def action(self):
print("You job is",self.job)
kinger = people('king',24,'man')#实例话一个对象,注意字符参数要加引号。封装这三个参数到name,age,sex属性中
kinger.talk() #调用类方法
kinger.add = 'sz' #给实例增加一个属性
print kinger.Name ,kinger.add
atom = man('blue',24,'femail','IT')#封装这几个参数给man这个类,实例化atom这个对象
print atom.job,atom.Name,atom.Sex,atom.Age
atom.action()#调用本身的方法
atom.talk()#调用父类中的方法
执行结果如下:
对象=属性+方法
一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象。
把具有相同属性和方法的对象归为一个类(class)。
类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。
类的方法
在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数。私有的类方法__private_method 两个下划线开头,声明该方法为私有方法,不能在类地外部调用在类的内部调用slef.__private_methods
类的部分专有方法:
__init__ 构造函数,在生成对象时调用
__del__ 析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值