类和实例

转载 2015年11月18日 12:28:36

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

class Student(object):

   
def __init__(self, name, score):
        self.name = name
        self.score = score

   
def print_score(self):
        print('%s: %s' % (self.name, self.score))

   def get_grade(self):
        if self.score >= 90:
           
return 'A'
        elif self.score >= 60:
           
return 'B'
        else:
           
return 'C'

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

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

普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。

面向对象编程的一个重要特点就是数据封装。封装数据的函数是和类本身是关联起来的,我们称之为类的方法,封装的另一个好处是可以给类增加新的方法。

总结

类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响;

方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;

通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。

和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同。

Java关键字 this (this.实例成员;this()),以及Android中内部类中的中的this(*.this,ClassName.this)

关键字this用于指代当前的对象。因此,类内部可以使用this作为前缀引用实例成员; this()代表了调用另一个构造函数,至于调用哪个构造函数根据参数表确定。this()调用只 能出现在构造函数的...

Java缓存Ehcache-核心类和方法介绍及代码实例

Ehcache中核心类和方法   EhCache里面有一个CacheManager类型,它负责管理cache。Cache里面存储着Element对象,Element必须是key-value对。Cach...

教程番外1——设备实例与设备类

1 简述在教程1中,我们在INF文件中添加了一个自己的设备类,并为其分配了一个GUID,还定义了注册表项,先回顾一下INF文件中的相关部分:; 版本域 [Version] ... Class=HUST...
  • hustd10
  • hustd10
  • 2016年02月05日 17:40
  • 2165

含文本框的提示框的使用->UIAlertController类的使用(用户登录界面实例)

在掌握了提示框的使用后,可以向提示框中添加文本框,构成类似登录界面一样的弹出式提示登录窗口,注意仅限于提示框样式,下拉菜单样式不能使用 在上一篇文章(提示框的使用->UIAlertController...

python学习——实例属性和类属性

由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(object): def __i...

离线轻量级大数据平台Spark之MLib机器学习库聚类算法KMeans实例

1、KMeans算法 所谓聚类问题,就是给定一个元素集合D,其中每个元素具有n个可观察属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高。...

Python中类、实例、方法之间的关系

本文参考Python核心编程 类的强大与否取决于它的功能,我们改进类的方法之一就是给类添加功能。类的功能有一个更为通俗的名字就是方法,在Python中,方法定义在类的定义中,但是只能被实例所调用,调用...

Ruby 实例变量和类变量

在Ruby中类实例变量、类实例方法和类变量、类方法的区别比较微妙,而且用法也有相当的区别。本文探讨一下他们的定义和基本的使用场景,以抛砖引玉...         一.类实例变量和类变量   ...

使用PhotonServer和Unity建立一个棋牌类游戏实例(一)构建photon服务器基础架构

1、构建PhotonServer工程 下载和配置完成PhotonServer后,我们要开始建立服务器工程了。 1.1 使用VS2015建立一个C#类库,名字叫做ILovePaoHuZi(我爱跑胡子,哈...

c++类实例在内存中的分配

c++是一种面向对象的编程语言,它向下保持了对c的兼容,同时也允许程序员能够自由的操控内存,虽然会带来一些问题,但这不是我们要探讨的问题,略过不表。类是对某种对象的定义,包含变量和方法,也可以理解为现...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:类和实例
举报原因:
原因补充:

(最多只允许输入30个字)