python--面向对象编程

面对对象程序

OOP把对象作为程序的基本单元,一个对象包括了数据和操作数据的函数

  • 面对过程的程序:把程序视为一系列的命令***。面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度
  • 面对对象的程序:把程序视为一组对象的***,而每个对象都可以接受其他对象发过来的消息,并处理这些消息。消息在各个对象之间传递

面对过程写法

std1 = {'name':'michael','score':98}
std2 = {'name':'cznczai','score':100}

def print_score(std):
    print('%s:%s' %(std['name'],std['score']))

if __name__ == '__main__':
    print_score(std1)

面对对象过程写法

Python类中的self到底是干啥的
在Python的解释器内部,当我们调用t.prt()时,实际上Python解释成Test.prt(t),也就是说把self替换成类的实例。
https://www.cnblogs.com/chownjy/p/8663024.html
https://www.cnblogs.com/wangjian941118/p/9360471.html

class student(object):
    def __init__(self , name , score): # 在python中self不是关键词 self在第一个位置是具有特殊性质
        self.name  = name
        self.score = score
    def print_score(self):
        print('%s : %s' % (self.name , self.score))

if __name__ == '__main__':
    a = student('Bart Simpson',59)
    student.print_score(a)
    a.print_score() # self指的是类实例对象本身

类和实例

面对对象:类(class)抽象 + 实例 (Instance)具体

  • (object)表示该类是从哪个类继承下来的,如果没有合适的继承类,就使用object类,这是所有类最终的继承的类
class school(object):
   pass
class student(school): # student 继承 school类
    pass

__ init __

  • 特殊方法“init”前后分别有两个下划线!!!
  • 注意到init方法的第一个参数永远是self,表示创建的实例本身,因此,在init方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
  • 有了init方法,在创建实例的时候,就不能传入空的参数了,必须传入与init方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去
  • 和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。

数据封装

  • 面对对象编程的一个重要特点就是数据封装。z

[False + 1 = 0 ] [True + 1 =2]

全部评论

相关推荐

jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务