面向对象基础一

1 面向对象

  • 编程语言有面向对象和面向过程之分,以去两个学生去学校为例
    • 面向过程步骤为:
      • 学生1背上书包
      • 学生1坐上校车
      • 学生1到达学校
      • 学生2背上书包
      • 学生2坐上校车
      • 学生2到达学校
    • 面向对象步骤为:
      • 学生1去学校
      • 学生2去学校
  • 在上述例子中,关注的是对象,而不是过程,背上书包、出门、坐校车、到达学校等动作、属性等都保存在对象中
  • 对于面向对象编程,一切皆对象,要使用某种功能,直接找到相应的对象就可以了
  • 面向对象使得代码复用性较高,且方便阅读,较容易维护,但对象是对现实生活中事物的抽象,不太符合常规思维,编写相对麻烦

2 类

参考资料:python 面向对象 来源:菜鸟教程

  • 类的定义: 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性(即数据)和方法(即行为)
  • 类创建语法
class 类名([父类]):
         类属性
         类方法
  • 对象: 通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。对象是类的实例(如果多个对象是一个类创建的,那么我们称之为一类对象)
  • 类调用方法: 必须通过对象调用
 对象.方法名()
  • 对象方法调用与函数调用的区别:
    • 函数调用:函数中有几个形参就需要传递几个实参
    • 方法调用:会默认传递一个参数
  • 类属性和方法
    • 类属性:即一些变量,这些变量是该类实例(即对象)的公共属性,所有该类实例都可以通过 对象.属性名 形式访问
    • 类方法:即一些函数,这些函数是该类实例的公共方法,所有该类实例都可以通过 对象.方法名() 的形式访问,方法调用时会默认传递一个参数,因此方法中至少有一个形参(self)
  • 属性和方法的查找流程: 调用一个对象属性时,解析器先在当前对象在寻找该属性,若有,则返回当前对象的属性值,若没有,则去该对象的类中寻找,有则返回类对象属性值,没有则报错;查找方法同理
  • 类对象和实例对象中都可以保存属性和方法:
    • 若此属性或方法是以实例共享的,则应该将其保存到类对象中
    • 若此属性或方法是某个实例对象独有的。则应该将其保存到实例对象中
    • 一般情况下,属性保存到实例对象中,而方法需要保存到类对象中

3 参数 self

  • self 在定义时需要定义,但在调用时会自动传入
  • self 的名字并不是规定死的,但最好还是按照约定用self
  • self 总是指调用时的类的实例
#示例
class stu():
    name='Nome'
    bag='Nome'
    bus='Nome'

    def ba(self):
        print('%s背上%s了'%(self.name,self.bag))

    def bu(self):
        print('%s 坐上%s了'%(self.name,self.bus))

    def res(self):
        self.ba()
        self.bu()
        print('%s到学校了'%(self.name))

stu1=stu()
stu1.res()                   #属性未赋值,输出默认值
print('-----------------')

stu1.name ='stu1'
stu1.bag ='bag1'
stu1.bus ='bus1'

stu1.bu()                    #调用其中一个方法
print('-----------------')
stu1.res()                   #属性赋值

'''
运行结果:
Nome背上Nome了
Nome 坐上Nome了
Nome到学校了
-----------------
stu1 坐上bus1了
-----------------
stu1背上bag1了
stu1 坐上bus1了
stu1到学校了
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值