python 类和实例

Class 是一种抽象概念,比如我们定义class--students,是指学生这个概念,而实例instance则是指一个个具体的学生,比如,张三,李四两个具体的学生。

面向对象的抽象程度又比函数要高,因为一个class即包含了数据,比如学生姓名,年龄,又包含了操作数据的方法。

数据封装,继承和多态是面向对象的三大特点。

类和实例是面向对象中的重要概念

类是指抽象出的模板。实例则是根据类创造出来的具体对象,每个对象都拥有从类中继承的相同方(function),但是各自的数据可能不同。

在python中定义一个类:

class Student(object):

    pass

关键字 class 后面跟着类名,类的名字通常是大写字母开头,紧跟着(object),表示该类是从哪个类继承下来的。通常,如果没有合适的继承类就是用object类,这是所有类都会最终继承下来的类。

定义好了类就可以根据 Student类创建实例:

zhangsan = Student()

可以给实例变量绑定属性

zhangsan.name = 'zhangsan'

类同时可以起到模板的作用,我们在常见一个类的同时,可以把一些公认的东西写进类的定义中去,在python中通过一个特殊的__init__方法实现:

class Student(object):

    def__init__(self,name,score):

        self.name = name

        self.score = score

__init__方法的第一个参数永远是self,表示创建实例本身,在__init__方法内部,可以吧各种属性绑定到self,因为self指向创建的实例本身。

有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传 因为python解释器会自己把实例变量传进去。

与普通函数相比,在类中定义函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法与普通函数没有区别。

面向对象编程一个重要的特点是数据的封装。既然我们创建的实例里有自身的数据,如果想访问这些数据,就没必要从外面的函数去访问,可以在Student类内部去定义这样一个访问数据的函数。这些封装数据的函数和Student类本身关联起来的,我们称之为类的方法:

class Student(object):

    def__init__(self,name,score):

        self.name = name

        slef.score = score

    def print_score(self):

        print("%s:%s"%(self.name,self.score))

要定义一个类的方法,除了传递第一参数self外,其他和普通函数一样,**slef为约定,假设你用别的实例化也可以,但是第一个必须要有**









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值