zoukankan      html  css  js  c++  java
  • 09_python的类与对象

    1.python中类和对象的基本概念

    (1)python的类

    • 类是对一类具有相同的特征和行为的事物的一个统称,是抽象的,不能直接使用
    • 类的特征被称为属性
    • 类的行为被称为方法

    (2)python的对象

    • 对象是由类创建出来的具体的某一事物
    • 对象是由哪个创建的就拥有这个类的属性和方法

    2.python类的设计

    (1)类设计概述

    使用面向对象的编程思想进行开发时,首先应该分析需求,确定程序中应该包含的类。在设计类时需要考虑三点:

    • 类名:使用大驼峰法命名。
    • 类的属性(特征)
    • 类的方法(行为)

    (2)类设计基本语法(只有方法,没有属性)

    class 类名:
    
        def 方法1(self, 参数列表):
            pass
            
            
        
        def 方法2(self, 参数列表):
            pass
            
            
    

    (3)创建对象语法

    对象变量 = 类名()
    

    (4)引用

    • 创建对象时,变量仍然是一个引用(存储了对象实际内存的地址),也就是变量引用了对象数据。
    • 在使用print函数打印一个变量名时,默认打印的是这个变量里存的地址(十六进制)

    (5)为对象设置属性

    在类的外部,使用对象名.属性=属性值,便可以为对象增加属性,但是不推荐这样做,程序容易出错。

    (6)self参数

    • self相当于java中的this,谁(哪个对象)调用了这个方法,这个self就是谁的引用。
    • 调用方法时,程序员不需要传递self参数

    (7)访问对象的属性和调用对象的方法

    • 在类内部(类的方法内部)可以通过使用self.访问对象的属性和调用对象的方法
    • 在类的外部可以使用对象名.访问属性和方法

    3.dir内置函数

    python是完全面向对象的编程语言,其中所有的数据都是对象,包括之前遇见过的变量、函数、数据。

    验证方法:

    • 标识符/数据后输入一个 .,然后按下 TAB 键,iPython 会提示该对象能够调用的方法列表
    • 使用内置函数dir 传入标识符 / 数据,可以查看对象内的所有属性及方法。

    下述__方法名__格式是Python提供的内置方法/属性,常用的内置方法:

    __new__()  #创建对象时,会被自动调用
    __init__() #对象被初始化时,会被自动调用
    __del__()  #对象被从内存中销毁前,会被自动调用
    __str__()  #返回对象的描述信息,print函数输出使用
    

    注意:

    • 如果希望对象在销毁之前做一些事情,可以考虑使用__del__()方法。一个对象的生命周期就是从创建到销毁的这段时间内。
    • 在对象的生命周期内,可以访问对象属性,调用对象的方法。
    • 当打印一个对象的引用时,默认打印的是这个对象的地址,如果想要打印这个对象的相关内容信息,可以使用__str__()方法改造这个对象。该方法必须返回一个字符串。

    4.对象的创建过程

    变量=类名()创建一个对象时,会自动执行一下操作:

    • 为对象分配内存空间(创建对象)
    • 为对象设置初始值(调用初始化方法__init__())

    5.定义属性、私有属性、私有方法、初始化

    (1)为对象定义属性

    • __init__()方法内部使用 self.属性名 = 属性的初始值就可以定义属性

    (2)创建对象时设置初始值

    在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对__init__()方法进行 改造

    • 把希望设置的属性值,定义成 __init__(self,参数1,参数2...) 方法的参数
    • 在方法内部使用 self.属性 = 形参 接收外部传递的参数
    • 在创建对象时,使用类名(参数1, 参数2...)调用

    (3)私有属性和私有方法的定义

    • 实际开发时有些方法或属性不希望被外部对象访问到,只在本对象内部使用,可以将这些方法或属性设置为私有方法和私有属性。
    • 定义方式:
      在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法。
  • 相关阅读:
    微信退款和支付宝退款接口调用(java版)
    SpringBoot实现JWT认证
    param-validate的使用
    SpringBoot统一参数校验开源项目:param-validate
    AOP+自定义注解实现全局参数校验
    Java自定义注解的实现
    Java初级面试题--持续更新
    React-native run-android fail on :app:processDebugResources解决办法
    【原创】Ionic单页应用跳转外链,构造路由返回的解决办法及代码
    angular 负数遇到货币过滤器,负号会变成括号的解决办法
  • 原文地址:https://www.cnblogs.com/lasnitch/p/11582872.html
Copyright © 2011-2022 走看看