面对过程VS面对对象

面向过程的程序设计的核心是过程,过程就是解决问题的步骤,面向过程的设计就是考虑周全什么时候处理什么东西

优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

缺点 :一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身。

类和对象

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

创建类

使用class语句来创建一个新类,class之后为类的名称并以冒号结尾

 

1 class open:
2     def __init__(self):
3         pass
4 a = open(....)

 

self代表类的实例,而非类

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

class Test:
    def prt(self):
        print(self)
        print(self.__class__)
 
t = Test()
t.prt()

  

实例

一下是一个简单的python类的例子

# # def ren(name,blood,aggr):
# #     berson = {
# #         'name': name,
# #         'blood': blood,
# #         'aggr': aggr
# #     }
# #     def skill(dog):
# #         dog['blood'] -= berson['aggr']
# #         print('{}受到了伤害了{}血'.format(dog['name'], berson['aggr']))
# #     berson['skill']= skill
# #     return berson
# #
# # def Dog(name,blood,aggr):
# #     dog ={
# #        'name' : name ,
# #        'blood' :blood,
# #        'aggr' :aggr
# #      }
# #     return dog
# # ji=ren(1,100,1)
# # al=Dog(2,100,2)
# # ji['skill'](al)  

类属性的补充
一:我们定义的类的属性到底存到哪里了?有两种方式查看
dir(类名):查出的是一个名字列表
类名.__dict__:查出的是一个字典,key为属性名,value为属性值

二:特殊的类属性
类名.__name__# 类的名字(字符串)
类名.__doc__# 类的文档字符串
类名.__base__# 类的第一个父类(在讲继承时会讲)
类名.__bases__# 类所有父类构成的元组(在讲继承时会讲)
类名.__dict__# 类的字典属性
类名.__module__# 类定义所在的模块
类名.__class__# 实例对应的类(仅新式类中)

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄