面向对象和类

python开发软件的编程思想是:面向对象。

面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。

优点:解决了程序的扩展性。

缺点:可控性差,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。

面向对象的程序设计并不是软件开发的全部。对于一个软件质量来说,面向对象的程序设计只是用来解决扩展性。

一、类和对象:

 属性和方法的结合就是对象,类就是从一对对象中抽象出的属性和函数。

python3中,统一了类型和类,统一为类。

python3中所有的都是新式类;只有python2中才分经典类和新式类。

写一个类,定义一个“人”的类

 1 class People:
 2     """这是解释文档"""
 3     coutry = "china"
 4 
 5     def __init__(self,name,company):
 6         self.name = name
 7         self.company = company
 8     def walk(self):
 9         print("%s is walking"%self)
10 
11 p1 = People("kyle","Tec") #实例化
12 
13 print(People.__bases__) #类的所有父类
14 print(People.__name__) #类的名字(字符串)
15 print(People.__dict__) #类的字典属性,存放了名称空间,寻找调用的属性
16 print(People.__doc__)#类的文档字符串
17 print(People.__module__)#类定义所在的模块
18 
19 print(p1.__module__) #实例所在模块
20 print(p1.__class__)#实例对应的类
21 print(p1.__dict__)#实例的名称空间
22 print(p1.__doc__)#实例对应类的描述文档
1 (<class 'object'>,)
2 People
3 {'__module__': '__main__', '__doc__': '这是解释文档', 'coutry': 'china', '__init__': <function People.__init__ at 0x109c5c840>, 'walk': <function People.walk at 0x109c5c7b8>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>}
4 这是解释文档
5 __main__
6 __main__
7 <class '__main__.People'>
8 {'name': 'kyle', 'company': 'Tec'}
9 这是解释文档

有两个作用:实例化和属性引用

对象只有一个作用:属性引用 

对象/实例本身只有数据属性,但是python的class机制会将类的函数绑定到对象上,称为对象的方法,或者叫绑定方法,绑定方法唯一绑定一个对象,同一个类的方法绑定到不同的对象上,属于不同的方法,内存地址都不会一样

原文地址:https://www.cnblogs.com/greatkyle/p/6734080.html