python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型或对象的不同而表现出不同的行为.   这是一个简单的例子,add方法,,包装了一下 + 函数.这就是多态.不管参数是什么类型,使用add方法,都可以把他们+在一起. 封装,封装式对全局作用域中其他区域隐藏多余的信息.和多态相似但是不同的概念,使用对象而不知道其细节.多态是不知道对象引用了什么类型,而…
type 其实就是元类,type 是python 背后创建所有对象的元类   python 中的类的创建规则: 假设创建Foo 这个类 class Foo(Bar): def __init__(): pass   Foo中有__metaclass__这个属性吗?如果有,Python会在内存中通过__metaclass__创建一个名字为Foo的类对象,他是一个类,但是本身类就是对象,一个python文件模块也属于一个对象. 如果Python没有找到__metaclass__,它会继续在Bar(父类…
类 面向对象最重要的概念就是类(Class)和实例(Instance),比如球类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同.在Python中,定义类是通过class关键字: class People(object): # 自定义一个People类,括号内的object表示当前类继承object类 '''this is my first object''' # 类的注释 name = 'daxin' # 类的属性 age = 18 def eat…
# 对象 = 属性 + 方法>>> # Python中的类名约定以大写字母开始>>> # tt = Turtle() 这就是创建类实例的方法,其它语言用new ,它是不需要的>>> >>> # Python中的self就相当于Java中的this >>> # self ,一般都放在方法的第一个参数中这是默认的要求 class Ball: def setName(self,name): self.name=name d…
我们在编程的过程中,并非都是要重头开始.比如其他人已经有现成的类,我们可以使用其他找人编写的类.术语称之为: 继承. 当一个类继承例外一个类时,它可以获得这个类的所有属性和方法:原有的类称之为 父类,新的类称之为子类.子类可以继承父类的所有方法和属性,还可以自定一些自己的方法和属性. 比如我们已经有了一个叫汽车的父类,我们可以继承这个类,生成一个电动车的子类: #-*- coding:utf-8 -*- class Car(): def __init__(self, make, model, y…
典型的类和调用方法: #!/usr/bin/env Python # coding=utf-8 __metaclass__ = type #新式类 class Person: #创建类 def __init__(self, name): #初始化函数 self.name = name def getName(self): #类中的方法(函数) return self.name def color(self, color): print "%s is %s" % (self.name,…
定义 Python 的 Class 比较特别,和我们习惯的静态语言类型定义有很大区别. 1. 使用一个名为 __init__ 的方法来完成初始化.2. 使用一个名为 __del__ 的方法来完成类似析购操作.3. 所有的实例方法都拥有一个 self 参数来传递当前实例,类似于 this.4. 可以使用 __class__ 来访问类型成员 >>>>>> class MyClass: def __init__(self): print "initialize.&q…
python中类声明如下: class Student(object): def __init__(self, name, score): self.name = name self.score = score def printinfo(self): print('name is %s, score is %d'%(self.name, self.score)) Student类有两个成员变量,name和score,类的成员函数第一个参数都为self,用来实现成员变量的赋值,__init__是…
类可以将数据与函数封装起来,用一个例子解释,先定义一个类: class athlete: def __init__(self,a_name,a_dob=None,a_times=[]): self.name = a_name self.dbo = a_dob self.time = a_times athlete是类的名字,self变量名,self后面的都是参数,而后面的代码就是将a_name这个参数的值赋给了self的name属性,以此类推.定义好了之后来试试: sarah = athlete…
我们在编码的过程中,可能会给对象添加越来越多的功能,即使我们使用了继承,也不可避免的使文件越来越臃肿. 为了避免这种情况, Python允许将对象存储在模块中,并且可以在其他模块中进行导入. 其实这和C#中的命名空间相类似. 我们首先准备了一个叫car.py的模块,其中包含了多个对象: class Car(): def __init__(self, make, model, year): self.make = make self.model = model self.year = year s…