python类与对象

类是一种数据类型,而对象是具有这种数据类型的变量。类是抽象的,不占有内存空间。而对象是具体的,占有储层空间。

python中,通过class关键字定义类。
形式:

class className:
        类体

类体定义类的成员,有二种类型成员。一是数据成员,它描述问题的属性。二是成员函数,它描述问题的行为。

类是抽象的,要使用类定义的功能必须将类实例化,即创建对象。 对象名=类名(参数列表)

class Person:
    name=' '
    age=0
    def  display(self):
        print('name={0},age={1}'.format(self.name,self.age))

p=Person()
p.name='tom'
p.age=22
p.display()
              

结果

name=tom,age=22

面向对象,具有继承,抽象,封装等特点
python中,定义的方法至少含一个参数,一般默认self(相当于,其它语言的this吧),需要作为第一个参数。

类属性就是类对象拥有的属性,它被类对象共有,在内存中只有一个副本

class Person:
    name=' '  #共有类属性
    __age=0  #私有类属性
    def setAge(self,a):
        self.__age=a
    def  display(self):
        print('name={0},age={1}'.format(self.name,self.__age))

p=Person()
#p.name='tom' 可以,但是不提倡
Person.name='tom'
p.setAge(22)
p.display()
              

类属性,属于类,既可以通过类访问,也可以通过对象访问,但是不建议通过对象访问。

实例属性, 不需要再类中显示定义,而在init中构造函数中定义,定义时以self为前缀。在其它方法也可以随意添加实例对象对象,建议不这么做,最好在init中给出。

实例属性属于实例对象,只能通过对象访问。

class Animal:
    def __init__(self,n,c):
        self.name=n #定义实例属性
        self.color=c
    def display(self):
        print('name={0},color={1}'.format(self.name,self.color))

an=Animal('dog','black')
an.display()

name=dog,color=black

类的方法
类中的内置方法, 在python中有一些内置方法,这些方法名都有特殊的约定,以2个下划线开始,2个下划线结束, 类中最常用的就是构造方法和析构方法。

构造方法 init(self,***) 在生成对象的时候调用,可以进行一些属性初始化操作,不需要显示调用,系统会默认执行。构造方法支持重载,如果用户没有定义新的构造方法,系统会自动执行默认的构造方法。

析构方法 del(self)在释放对象的时候调用,支持重载,不需要显示调用。

class Animal:
    def __init__(self,n,c):
        self.name=n #定义实例属性
        self.color=c
        print("执行了构造函数")

    def __del__(self):
        print("执行了析构函数")
    def display(self):
        print('name={0},color={1}'.format(self.name,self.color))

an=Animal('dog','black')
an.display()
del an

结果是:

执行了构造函数
name=dog,color=black
执行了析构函数

分2部分吧。。。

你可能感兴趣的:(python类与对象)