Python--面向对象编程

一、面向对象的理解

面向对象的核心就是对象二字,什么是对象呢,对象就是特征与技能的结合体,例如,花、草、树木是对象、电脑和人也是对象,他们都有自己的特征和技能

二、面向对象的优点:

面向对象的优点正是面向过程的缺点,面向过程可扩展性差,但是面向对象可扩展性强

三、面向对象的缺点

面向对象的缺点正是面向过程的优点,面向过程能够把复杂的问题流程化、简单化,面向对象代码开发复杂度高

四、面向对象的应用场景

用户需求经常变化,例如互联网应用,游戏和企业内部应用等

五、类的概念

类就是一系列对象相似的特征和技能的结合体

强调,站在不同的角度,得到的分类是不一样的

在现实世界中:一定现有对象,后有类

在程序中:一定得先定义类,然后调用类产生对象

站在路飞学员的角度,大家都是学生

在现实世界中:

对象1:王一丫

  特征:

  学校=‘luffycity’

  名字=‘王一丫’

  性别=‘女’

  年龄=18

 技能:

  学习

  吃饭

  睡觉

对象2:王二丫

  特征:

  学校=‘luffycity’

  名字=‘王二丫’

  性别=‘男’

  年龄=28

 技能:

  学习

  吃饭

  睡觉

对象3:王三丫

  特征:

  学校=‘luffycity’

  名字=‘王三丫’

  性别=‘男’

  年龄=38

 技能:

  学习

  吃饭

  睡觉

总结现实中路飞学院的学生类,

  相似的特征:

    学校=‘luffycity’

  相似的技能:

     学习

     吃饭

     睡觉

六、在程序中:

1、先定义类:

2、后产生对象

代码如下:

 1 class LuffyStudent():
 2     school = 'luffycity'
 3 
 4     def learn(self):
 5         print('is learning')
 6 
 7     def eat(self):
 8         print('is eating')
 9 
10     def sleep(self):
11         print('is sleeping')
12    
13 
14 stu1 = LuffyStudent()
15 stu2 = LuffyStudent()
16 stu3 = LuffyStudent()
17 print(stu1)
18 print(stu2)
19 print(stu3)

结果如下:

<__main__.LuffyStudent object at 0x0000023169F2C5C0>
<__main__.LuffyStudent object at 0x0000023169F0E2E8>
<__main__.LuffyStudent object at 0x000002316A0CE0F0>

七、如何使用类

1、与函数不同,类定义好之后就会执行,示例代码如下

 1 class LuffyStudent():
 2     school = 'luffycity'  # 数据属性
 3 
 4     def learn(self):  #函数属性
 5         print('is learning')
 6 
 7     def eat(self):  #函数属性
 8         print('is eating')
 9 
10     def sleep(self):  #函数属性
11         print('is sleeping')
12 
13     print('====run=====')

结果如下:

====run=====

2、查看类的名称空间

代码如下:

1 print(LuffyStudent.__dict__)
2 print(LuffyStudent.__dict__['school'])
3 print(LuffyStudent.__dict__['learn'])

结果如下:

1 {'__module__': '__main__', 'school': 'luffycity', 'learn': <function LuffyStudent.learn at 0x000001420C1AC620>, 'eat': <function LuffyStudent.eat at 0x000001420C1AC6A8>, 'sleep': <function LuffyStudent.sleep at 0x000001420C1AC730>, '__dict__': <attribute '__dict__' of 'LuffyStudent' objects>, '__weakref__': <attribute '__weakref__' of 'LuffyStudent' objects>, '__doc__': None}
2 luffycity
3 <function LuffyStudent.learn at 0x000001420C1AC620>

类有自己的查看类名称空间的方法

如下:

1 print(LuffyStudent.school)
2 print(LuffyStudent.learn)

结果如下:

luffycity
<function LuffyStudent.learn at 0x0000027CB1A4C620>

3、增加类的名称空间

1 LuffyStudent.country = 'China'
2 print(LuffyStudent.country)

结果如下:

China

3、删除类的名称空间

del LuffyStudent.country

4、更改类的名称空间

LuffyStudent.school = 'Luffycity'

原文地址:https://www.cnblogs.com/xudachen/p/8567136.html