IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础语法-面向对象:类和对象 -> 正文阅读

[Python知识库]Python基础语法-面向对象:类和对象

语法:

class?类名:
    属性值
    类函数
#创建实例
类名()

规范:1)类名每个单词的首字母大写,遵循标识符大驼峰命名法?。

? ? ? ? ? ?2)类名命名时要见名知意,提高代码的可读性。

1.如何定义类?

所有你认为具有共同属性以及共同特征的,都可以划分为一个类,比如你和我,我们都单身,没有男朋友,也没有女朋友,那我们可以划分为单身类;比如有一个人,他有别人都没有的特征,他有千里眼,那他自己可以不可以归为一类呢?可以,一个人也是一个类,因为类是具有相同特征,相同行为的集合,集合也可以只有一个值或者为空。

2.什么是对象?

对象(object)是一类事物中的一个成员(个体),对象又被称为实例,是类的某个实体,某个成员。比如单身类中的某个具体的人(你或者我)就是对象(实例)。

class Dog:
    pass


# 得到一个类
print(Dog)
# 得到一个对象/实例
print(Dog())

运行结果:0x000001C5D39A44A8表示对象存在的内存地址

3.类和对象的关系

类就相当于造车时的施工图纸(模板),而造好的车子就是对象。

class Car:
    pass


# 得到一个类
print(Car)
# 得到一个对象/实例
my_car = Car()
print(my_car)
# 再创建一个对象/实例
your_car = Car()
print(your_car)
# 两个不同的对象,不相等
print(my_car == your_car)
print(Car() == Car())

运行结果:

?4.类属性

类属性:在一个类当中,所有的成员都有一样的特征。

实例属性:类当中某个成员具备的特征,个体特征。

python中表示类属性和实例属性(类的外面),以下面代码为例:

类属性:类名.类属性,Car.drived
实例属性:类名().类属性,Car().drived

修改属性值

1)通过类修改某个类属性之后,再获取该类的属性,实例属性,全部都会变,取新值

Car.elements = ['真皮']
#得到类属性
print(Car.elements) ==>['真皮']
# 得到一个对象,对象是可以获取类的变量的
my_car = Car()
print(my_car.elements) ==>['真皮']

2)通过对象修改某个属性之后,类属性不变,实例属性取新值

my_car.drived= False
# 获取对象的drived
print(my_car.drived) ==>False
# 获取类的drived属性
print(Car.drived)  ==>True

举例:定义一个Car类,有相同的类属性:wheel?、drived 、elements?

# 在类定义作用域当中,定义变量,就是类属性
class Car:
    # 类属性/类变量
    wheel = True
    drived = True
    elements = ['塑料', '铁', '橡胶']
    # 类的里面获取类变量
    print(f'wheel:{wheel}')


# 怎么获取类变量,类的外面获取类变量
print(Car.elements)
# 不能这样 ,因为elements属于局部变量
# print(elements)#全局变量的写法

# 修改类属性
Car.wheel = False
print(Car.wheel)
Car.elements = ['真皮']
print(Car.elements)

# 得到一个对象,对象是可以获取类的变量的
my_car = Car()
print(my_car.elements)

# 修改类属性和修改实例属性的区别
my_car.drived= False
# 获取对象的drived
print(my_car.drived)
# 获取类的drived属性
print(Car.drived)

运行结果:

??

?5.__init__和实例变量

  • __init__叫初始化方法,代表一个对象产生的初始化过程
  • 方法本质还是一个函数,可以加参数即实例属性
  • __init__没有返回值

如果在一个类中,不写__init__函数,但也是存在默认的,如下代码所示:

class Car:
    element = ['铁']

    def __init__(self):
        pass


# 得到一个类
print(Car)
# 对象产生的过程,通过类这个模板,制造一个对象出来的过程,就是实例化过程
# 具体的过程,在Car(),其实就是自动调用类当中的__init__这个函数(初始化函数),
#不需要指定函数名称
print(Car())

类函数带有参数:比如生产一部车,需要放底盘,装车架,装轮胎,喷漆,印logo。

class Car:
    element = ['铁']

    def __init__(self,color,logo):  # 必须要加self
        print('一个Car对象正在产生')
        print('先执行第一步:放底盘')
        print('再执行第二步:装车架')
        print('再执行第三步:装轮胎')
        print(f'再执行第四步:喷漆颜色:{color}')
        print(f'再执行第五步:印{logo}logo')


# 得到一个类
print(Car)
# 对象产生的过程,通过类这个模板,制造一个对象出来的过程,就是实例化过程
# 具体的过程,在获取Car()这个对象里面,其实就是自动调用类当中的__init__这个函数(初始化函数),不需要指定函数名称
# 函数有什么用呢?可以自己指定产生对象的过程
my_car=Car(color='red',logo='保时捷')
print(my_car)
your_car=Car('绿色','甲壳虫')
print(your_car)

运行结果:

通过上面的例子,我们可以看到获取到两个对象即两部车子,那如果我们想获取某一部车子的颜色(my_car.color)该怎么获取呢?这就引入了self关键字。

self

  • self是函数的第一个默认参数,代表实例对象本身
  • self,我自己,比如我的名字self.name

表示在对象的生产过程中,代表对象的一个标记,比如新生儿都会有一个手环锁,用于标记是谁的孩子以及防止抱错或者被偷,不经过医生开锁,经过医院的大门会触发仪器报警。

self是在类定义里面使用的,类外面没有self。比如这个手环锁是在这个医院里面使用的,出了医院的大门就不需要使用了。简称类内标记。

实例变量是属于个体的特征,每个都可能不一样,在类函数内定义:self.属性值='value'

获取实例属性两种方式(两种获取实例属性的值是相等的,可以通过id()获取内存地址进行比对)

1.类内,self.color
#类里面获取实例属性 self.color
print(id(self.color)) ==>2004030604152
2.类外面 my_car.color
# 类的外面获取实例属性
my_car = Car(color='red', logo='保时捷')
print(my_car.color)  
print(id(my_car.color)) ==>2004030604152
class Car:
    element = ['铁']

    def __init__(self, color, logo):  # 必须要加self
        # 实例属性,self就是对象,对象.属性='value'
        self.color = color
        self.logo = logo
        print('一个Car对象正在产生')
        print('先执行第一步:放底盘')
        print('再执行第二步:装车架')
        print('再执行第三步:装轮胎')
        print(f'再执行第四步:喷漆颜色:{color}')
        print(f'再执行第五步:印{logo}logo')
        # 类里面获取实例属性 self.color
        print(id(self.color))


# 对象产生的过程,通过类这个模板,制造一个对象出来的过程,就是实例化过程
# 具体的过程,在获取Car()这个对象里面,其实就是自动调用类当中的__init__这个函数(初始化函数),不需要指定函数名称
# 函数有什么用呢?可以自己指定产生对象的过程
my_car = Car(color='red', logo='保时捷')
# 类的外面获取实例属性
# 获取实例属性两种方式:
# 1.类内,self.color
# 2.类外面 my_car.color
print(my_car.color)  # 前提是实例属性存在,self.color
# 两种获取实例属性的值是相等的,可以通过id()获取内存地址进行比对
print(id(my_car.color))

运行结果:

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:45:02  更:2021-09-20 15:47:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:34:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码