一、概念
类:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。
对象:对象是类的实例,对象包括两个数据成员(类变量和实例变量)和方法。对象的创建,就是实例化的过程
属性:类属性(类变量):共有的属性,类变量定义在类中且在函数体之外。类属性属于类,也属于对象 ,可以通过类或对象访问
实例属性(实例变量): 只属于对象,只能通过对象访问。
局部变量:定义在方法中的变量,只作用于当前实例的类。更多地是在函数式编程里面用到。
方法:类中定义的函数。
二、创建实例对象、访问类属性、实例属性
class Person(object):
#类属性
gongtong='China'
def __init__(self,name,age):
#实例属性
self.name=name
self.age=age
def getName(self):
return self.name
def getAge(self):
return self.age
def setName(self,name):
self.name=name
def setAge(self,age):
self.age=age
def info(self):
return 'name:{0},age:{1},from:{2}'.format(self.getName(),self.getAge(),self.gongtong)
#创建实例对象
per=Person('wuya',18)
'''通过类名.属性访问类属性,通过对象.属性访问实例属性'''
print(per.getName(),per.getAge(),Person.gongtong)
per2=Person('wuya',20)
per2.setName('lisi')
per2.setAge(25)
print(per2.getName(),per2.getAge())
print(per.info())
三、动态参数在类中的应用
class Person(object):
def __init__(self,*args,**kwargs):
self.args=args
self.kwargs=kwargs
def info(self):
print(self.args[0],self.kwargs)
per1=Person(name='wuya',age=18)
per1.info()
per2=Person('wuya',18,'xian')
per2.info()
四、构造函数
一个类,不管是否写了构造函数,它都是有构造函数的。
一个类,可以有多个构造函数。
构造函数:初始化属性。
class Person(object):
def __init__(self,name,age):
self.name=name
self.age=age
def __init__(self,address):
self.address=address
per=Person('xian')
per1=Person('wuya',18)
五、方法执行顺序
先执行构造函数,然后执行调用的方法,最后执行析构函数。
class Person(object):
def __init__(self):
print(&#