面向对象是编程的一种方法java
数值就是数值对象,字符串就是字符串对象等等python
面向对象 C++,java,python等shell
面向过程 C ,shell等编程
类:是对事物的抽象,好比人类、球类……数组
对象:是类的一个实例,好比足球、篮球……函数
球类能够对球的特征和行为进行抽象,而后能够实例化一个真实的球实体出来code
封装对象
继承继承
多态字符串
这种思想方便解决较为复杂的项目,且维护起来比较容易
类把须要的变量和函数组合在一块儿,这种包含被称为封装
class A(object):
类的结构:
class 类名:
成员变量-属性 成员函数-方法
>>> class People(object): ... name = 'zx' def think(self): \\定义的函数必须有self print 'thinking' ... >>> a = People() \\实例化 >>> print people <__main__.People object at 0x7fb9e3403c90> >>> a.think() \\调用think方法 thinking
类是由属性和方法组成的,属性能够叫作成员属性,方法能够叫作成员方法
class People(object): name = 'zx' \\属性 def think(self): \\方法 print 'thinking'
建立对象的过程曾称之为实例化;当一个对象被建立后,包含三个方面的特性:对象句柄,属性和方法。
句柄用于区分不一样的对象
对象的属性和方法与类中的成员变量和成员函数对应
oji=MyClass() \建立类的一个实例(对象)经过对象来调用方法和属性
类的属性按使用范围分为公有属性和私有属性,类的属性范围取决于属性的名称。
公有属性:在类中和类外都能调用的属性
私有属性:不能在类外以及被类之外的函数调用;定义方式, 已“__”双下划线开始的成员变量就是私有属性;能够经过instance.__classname__attribute方式访问
内置属性:有系统在定义类时默认添加的,右先后双下划线构成, _dic_, _module_
class ClassA(object): pub = 'pub' __pri = 'pri' def show(self): print self.pub print self.__pri classa = ClassA classa.pub = 'newpub' \\能够在外部修改共有属性
方法的定义和函数同样,可是须要self做为第一个参数
类的方法有:公有方法、私有方法、类方法和静态方法。
类方法:被classmethod()函数处理过的函数,能被类所调用,也能被对象所调用(是继承的关系)
静态方法:至关于“全局函数”,能够被类直接调用,能够被全部实例化对象共享,经过staticmethod()定义,注意静态方法没有self参数
class ClassA(object): pub = 'pub' __pri = 'pri' def show(self): \\公有方法 print self.pub print self.__pri def new(self): self.think() \\调用公有方法 def __mypri(self): \\私有方法,不能在外部调用 pass classa = ClassA
class ClassA(object): pub = 'pub' __pri = 'pri' def show(self): \\公有方法 print self.pub print self.__pri test = classmethod(show) classa = ClassA() ClassA.test \\直接调用show方法
静态方法
class ClassA(object): pub = 'pub' __pri = 'pri' def show(): print self.pub print self.__pri test = staticmethod(show) classa = ClassA() classa.test \\静态方法调用不会传参数