人工智能(python)开发 —— 面向对象编程(类的概念)


一、面向对象编程(Object-Oriented Programing)

        面向过程:一件事分有好几个步骤(而且要理清流程),每个步骤可以封装一个函数。对于复杂的事情不好理清流程。面向对象是把一切看成对象(实例),对象和对象之间用方法(行为)建立关联关系;面向对象是一种思想。
术语:
        类                对象              实例
      class            object          instance

对象
        对象是指现实中的物体或实体

面向对象
        把一切看成对象(实例), 用各种对象之间的关系来描述事务
对象的特征
        对象有很多属性(名词)
                姓名,性别, 年龄, ...
        对象有很多行为(动作,动词)
                学习,吃饭,睡觉,工作, ....


        拥有相同属性和行为的对象分为一组,即为一个类
        类是用来描述对象的工具,用类可以创建此类的对象(实例)

二、类的基础概念

1、类的创建

        class 语句
语法
        class 类名(继承列表):
                ''' 类文档字符串'''
                实例方法(类内的函数methd)定义
                类变量(class  variabe)定义
                类方法(@classmethod)定义
                静态方法(@staticmethod)定义
作用
        创建一个类
        用于描述对象的行为和属性
        用于创建此类的一个或多个同类对象(实例)
说明
        继承列表可以省略,省略继承列表表示类继承自object
        类名必须为标识符
        类名实质上是变量,它绑定一个类

2、类的作用

        可以用类创建一个或多个此类的对象(实例)
        类内的变量和方法能被此类所创建的所有实例所共同拥有

3、类的说明

        类名必须是标识符(与变量命名规则相同,建议首字母大写)
        类名实质上就是变量,塔绑定一个类实例
        类的定义最后面要加两个空格以告诉解释执行器,类的定义已经结束

三、类的使用

1、构造函数

构造函数调用表达式
        类名([创建传参列表])
                注:[ ]里的内容代表可省略
作用
        创建这个类的实例对象,并返回此实例对象的引用关系

示例

class  Dog:    # 定义一个类
    pass
dog1 = Dog()            # 用类来创建一个对象用dog1绑定
print(id(dog1))         # 打印dog1所在的内存地址
dog2 = Dog()            # 创建第二个对象  用dog2绑定
print(id(dog2))
print(dog1 is dog2)     # False 判断两只狗是不是同一只狗

2、实例说明

        实例有自己的作用域或名字空间,可以为该实例添加实例变量(也叫属性)
        实例可以调用类的方法
        实例可以访问类中的类变量

3、实例属性  attribute (也叫实例变量)

        每个实例可以有自己的变量,称为实例变量(属性)
属性的使用语法
        实例.属性名
属性的赋值规则(同变量规则相同)
        a、首次为属性赋值则创建此属性
        b、再次为属性赋值则改变属性的绑定关系

示例

class  Dog:
    pass
dog1 = Dog()
dog1.kinds = “京巴”                # 为dog1绑定的实例添加kinds属性
dog1.color = “白色”                # 添加属性
print(dog1.kinds, dog1.color)      # 访问属性
dog1.color = “黄色”                # 改变属性
print(dog1.color)    
属性的删除
        del  语句
语法
        del  实例.属性名
示例:
class  Student:
    pass
stu = Student()
stu.name = “xiaoming”
print(stu.name)
del  stu.name      # 删除此属性
print(stu.name)    # 属性错误,因为属性不存在了

四、附录

        人工智能(python)—— 目录汇总


猜你喜欢

转载自blog.csdn.net/qq_27297393/article/details/80820219