码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象与类

时间:2019-04-17 15:15:20      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:文件的   优先   问题   名称   地址   顺序   定义   名称空间   相对   

# 面向过程:
# 重过程:解决问题,考虑的是解决问题的流程
# 解决问题的思路清晰,但拓展性不强

# 面向对象:
# 重对象:解决问题,找到解决问题的对象
# 解决问题的思路可能不止一条(理解解决问题的难度增加),但拓展性强

# Python语言:面向对象的语言
# Python用面向过程与面向对象两种方式解决问题

# 函数与方法:都是解决问题的功能
# 函数:通过函数名直接调用
# 方法:通过附属者.语法来调用

# import re
# print(re.S)

# import test
# print(test.num)

名称空间

内置 | 全局 | 局部

能产生名称空间的有: 文件 | 函数 | 类

能产生名称空间的对象有__dict__这个值,通过这个值访问到名字的地址与地址对应的关系

 

面向对象

寻求一个类似函数与文件对象,可以额外添加功能与属性的对象

类:具有相同特征与行为个体集合的抽象

对象:有特征、行为的具体个体,就是类 的具体体现

 

语法:

类的声明:

class  类名:      #class定义语法的关键字

    pass

 

对象的产生:对象的实例化

对象1=类名()

对象2=类名()

对象3=类名()

 

学习重点:自定义类的实例化对象

类也有名称空间,定义类的(也就是类的类)是元类

 

类拥有自己的名称空间,类的对象也拥有自己的名称空间

所有可以通过 . 语法添加或使用属性和方法

 

类一旦被加载(随着所属文件的加载就加载),就会进入类的内部执行类中的所有代码

 

class People:
  identify = ‘人类‘
  def sleep(self):
    print(‘睡觉‘)
  print(456)
# print(People.__dict__)
p1 = People()
p2 = People()

 

# p1,p2虽然能访问identify,但identify属于People类,只有一份
print(p1.identify)
print(p2.identify)

 

# p1,p2虽然能访问identify,但identify属于People类,只有一份
print(p1.identify)
print(p2.identify)

 

# p1修改的并不是People的identify,相对于给自己添加一个identify属性
p1.identify = ‘新人类‘
print(p1.__dict__, p1.identify)
p1.__dict__.clear()
print(p1.identify)
# p2自己没有,还是访问的类的
print(p2.identify)

# 属性的访问顺序:优先加载自身的名字,如果没有再考虑类的

 

面向对象与类

标签:文件的   优先   问题   名称   地址   顺序   定义   名称空间   相对   

原文地址:https://www.cnblogs.com/SlookUp/p/10723564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!