python面向对象(一)- 面向对象基础

面向对象是python中一个重点知识,用面向对象的思想编程,有利于模块化代码,方便阅读和后期的维护。

1.1-基本介绍

  1. 面向过程:注重解决问题的步骤,让问题根据步骤流程一步一步得到解决
    面向对象:万物皆对象,每个对象都有特征和功能,对象间又可以相互作用

  2. 类:具有相同特征或行为的事物的统称(抽象的,不可直接使用)
    对象:对象是由类创建出来的具体存在,可以直接使用

  3. 三大特征

  • 封装:把对象的属性和方法封装成类

  • 继承:子类继承父类,子类拥有父类的属性和方法。实现代码重用,相同代码不需要重复写

  • 多态:当父类的属性和方法不满足子类调用时,子类可重写父类的属性和方法

  1. 新式类和旧式类

    继承自object的类为新式类,其他为旧式类,object为所有类的基类

    python 2.x 继承基类需 写 class A(object):

    python 3.x 默认继承object,可不写,即 class A:

    但想程序在python任何版本都能运行最好都写object

  2. 常见术语
    类属性,实例属性,实例方法,类方法,静态方法

class A(object):
    # 1.类属性
    a = 0
    def __ini__(self, name):
        # 2.实例属性
        self.name = name  
        
    # 3.实例方法
    def test(self):
		pass
    
    # 4.类方法
    @classmethod
    def test(cls):
		pass
    
    # 5.静态方法
    @staticmethod
    def test():
         pass


1.2-构建类的思路

  • 根据动名词提取,动词一般是方法,名词一般是属性

  • 实例方法:方法内部需要访问实例属性

  • 类方法: 方法内部 只 需要访问类属性

  • 静态方法:方法内部不需要访问,类属性和实例属性

  • 例如:一个方法既要访问类属性,也要访问实例属性,就可以定义一个实例方法



1.3-init 初始化函数

  1. 实例化:创建了一个该类的对象(实例)的过程:

​ (1)为对象分配储存空间,储存对象的属性和方法

​ (2)为对象初始化,实例化过程会自动执行init方法

class Person:def __init__(self, name, age):   # 初始化,对生成的实例配置属性(name,age)
​        self.name = name              # self 为当前正在创建的实例本身
​        self.age = age  
t = Person(‘tom’,20)    

实例化过程:“=”右边先执行,Person(‘tom’,20) 创建出一个实例,此时self就是当前这个实例,__init__函数对该实例进行属性配置(配置name,age这也叫初始化过程),配置完成后,该具备属性的实例 赋值给 t



1.4-常见方法

  1. dir(对象) 就可以查看对象的属性和方法

    list = [1,2,3,4,5,6]
    # 查看对象的方法或属性,__方法名__ 为内置方法
    dir(list)
    
    >>>
     '__str__',
     '__subclasshook__',
     'append',
     'clear',
     'copy',
     'count',
    .....
    
  2. str方法

    # 如果想用print输出对象变量时,能够打印自定义内容,可利用__str__
    # 否则直接print只能获得对象的储存地址
     class Cat:
         def __init__(self, name):
             self.name = name
                
         def __str__(self):
             # 必须返回字符串
             return "我来了%s"%self.name
    tom = Cat("tom")
    print(tom)
    
    >>> 我来了tom
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值