在面向对象开发中,使用类创建出来的实例是一个对象,那么,类是否是一个对象呢?
通过类创建的对象被称为实例对象,对象属性又称为实例属性,记录对象各自的数据,不同对象的同名实例属性,记录的数据各自独立,互不干扰。
class Person(object):
def __init__(self,name,age):
# 这里的name和age都属于是实例属性,每个实例在创建时,都有自己的属性
self.name = name
self.age = age
每创建一个对象,这个对象就有自己的name和age属性
p1 = Person('张三',18)
p2 = Person("李四",20)
类属性就是类对象所拥有的属性,它被该类的所有实例对象所共有,类属性可以通过类对象或者实例对象访问。
class Dog:
type = "狗" # 类属性
不管是dog1、dog2还是Dog类,都可以访问到type属性
print(Dog.type) # 结果:狗
print(dog1.type) # 结果:狗
print(dog2.type) # 结果:狗
类的实例记录的某项数据始终保持一致时,则定义类属性。
实例属性要求每个对象为其单独开辟一份内存空间来记录数据,而类属性为全类所共有 ,仅占用一份内存,更加节省内存空间。
注意点:
- 尽量避免类属性和实例属性同名。如果有同名实例属性,实例对象会优先访问实例属性。
class Dog(object):
type = "狗" # 类属性
def __init__(self):
self.type = "dog" # 对象属性
创建对象
dog1 = Dog()
print(dog1.type) # 结果为 “dog” 类属性和实例属性同名,使用实例对象访问的是实例属性
- 类属性只能通过类对象修改,不能通过实例对象修改
class Dog(object):
type = "狗" # 类属性
dog1 = Dog()
dog1.type = "dog" # 使用实例对象创建了对象属性type
print(dog1.type) # 结果为 “dog” 类属性和实例属性同名,访问的是实例属性
print(Dog.type) # 结果为 "狗" 访问类属性
# 只有使用类名才能修改类属性
Dog.type = "土狗"
print(Dog.type) # 土狗
dog2 = Dog()
print(dog2.type) # 土狗
- 类属性也可以设置为私有,前边添加两个下划线。 如:
class Dog(object):
count = 0 # 公有的类属性
__type = "狗" # 私有的类属性
print(Dog.count) # 正确
print(Dog.__type) # 错误,私有属性,外部无法访问。
【Python】Python 实现猜单词游戏——挑战你的智力和运气!
【python】Python tkinter库实现重量单位转换器的GUI程序
【python】使用Selenium获取(2023博客之星)的参赛文章
【python】使用Selenium和Chrome WebDriver来获取 【腾讯云 Cloud Studio 实战训练营】中的文章信息
使用腾讯云 Cloud studio 实现调度百度AI实现文字识别
【玩转Python系列【小白必看】Python多线程爬虫:下载表情包网站的图片
【玩转Python系列】【小白必看】使用Python爬取双色球历史数据并可视化分析
【玩转python系列】【小白必看】使用Python爬虫技术获取代理IP并保存到文件中
【小白必看】Python图片合成示例之使用PIL库实现多张图片按行列合成
【小白必看】Python爬虫实战之批量下载女神图片并保存到本地
【小白必看】Python词云生成器详细解析及代码实现
【小白必看】Python爬取NBA球员数据示例
【小白必看】使用Python爬取喜马拉雅音频并保存的示例代码
【小白必看】使用Python批量下载英雄联盟皮肤图片的技术实现
【小白必看】Python爬虫数据处理与可视化
【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序
【小白必看】利用Python生成个性化名单Word文档
【小白必看】Python爬虫实战:获取阴阳师网站图片并自动保存
小白必看系列之图书管理系统-登录和注册功能示例代码
小白实战100案例: 完整简单的双色球彩票中奖判断程序,适合小白入门
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
使用selenium爬取猫眼电影榜单数据
图像增强算法Retinex原理与实现详解
爬虫入门指南(8): 编写天气数据爬虫程序,实现可视化分析
爬虫入门指南(7):使用Selenium和BeautifulSoup爬取豆瓣电影Top250实例讲解【爬虫小白必看】
爬虫入门指南(6):反爬虫与高级技巧:IP代理、User-Agent伪装、Cookie绕过登录验证及验证码识别工具
爬虫入门指南(5): 分布式爬虫与并发控制 【提高爬取效率与请求合理性控制的实现方法】
爬虫入门指南(4): 使用Selenium和API爬取动态网页的最佳方法
爬虫入门指南(3):Python网络请求及常见反爬虫策略应对方法
爬虫入门指南(2):如何使用正则表达式进行数据提取和处理
爬虫入门指南(1):学习爬虫的基础知识和技巧
深度学习模型在图像识别中的应用:CIFAR-10数据集实践与准确率分析
Python面向对象编程基础知识和示例代码
MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
Python文件操作指南:编码、读取、写入和异常处理
使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章
Python多线程与多进程教程:全面解析、代码案例与优化技巧
Selenium自动化工具集 - 完整指南和使用教程
Python网络爬虫基础进阶到实战教程
Python入门教程:掌握for循环、while循环、字符串操作、文件读写与异常处理等基础知识
Pandas数据处理与分析教程:从基础到实战
Python 中常用的数据类型及相关操作详解
【2023年最新】提高分类模型指标的六大方案详解
Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
用4种回归方法绘制预测结果图表:向量回归、随机森林回归、线性回归、K-最近邻回归