当前位置: 首页 > news >正文

Python 编程基础 | 第五章-类与对象 | 5.2、数据成员

一、数据成员

数据成员是指类中定义的变量,即属性,根据定义位置,又可以分为类属性实例属性,下面分别进行介绍。

1、实例属性

实例属性是指定义在类的方法中的属性,该属性属于当前实例,例如:定义一个Dog类,在该类的__init__()方法中定义2个实例属性,代码如下:

class Dog:"实现一个小狗类"def __init__(self, name, age) -> None:self.name = nameself.age = agedef sit(self):"小狗接收到蹲下指令"print(f"{self.name} is now sitting")my_dog = Dog("jack", 10)
my_dog.sit()

可以使用.来访问对象的属性,但是,实例属性只能通过实例名访问,如果通过类名访问会报错

2、类属性

类属性是指在定义类中,并且在函数体外的属性,类属性可以在类的所有实例之间共享,例如:定义一个雁类,在该类中定义3个类属性,代码如下:

class Geese:"""大雁类"""beak_1 = "喙,比较尖"   # 定义类属性(喙)wing_1 = "翅膀,比较大" claw_1 = "爪,行走自如"def __init__(self):print("我是大雁类!我有一下特征:")print(Geese.beak_1)   # 访问类属性print(Geese.wing_1)print(Geese.claw_1)my_geese = Geese()

通过类名.的方式访问类属性

3、内置类属性

Python有一些内置的类属性,记录类相关的信息,如下:

属性功能
__dict__类的属性(包含一个字典,由类的数据属性组成)
__doc__类的文档字符串
__name__类名
__module__类定义所在的模块
__bases__类的所有父类构成的元素

示例:

class Dog:"实现一个小狗类"def __init__(self, name, age) -> None:self.name = nameself.age = agedef sit(self):"小狗接收到蹲下指令"print(f"{self.name} is now sitting")print (f"Dog.__doc__:{Dog.__doc__}")
print (f"Dog.__name__:{Dog.__name__}")
print (f"Dog.__module__:{Dog.__module__}")
print (f"Dog.__dict__:{Dog.__dict__}")
print (f"Dog.__bases__:{Dog.__bases__}")
http://www.lryc.cn/news/185685.html

相关文章:

  • PHP 个人愿望众筹网站系统mysql数据库web结构apache计算机软件工程网页wamp
  • JS--判断空值(null、undefined、NaN、false、空字符串等)
  • ChatGPT 背后包含了哪些技术?
  • Vue Router(二)
  • ELK整合springboot(第二课)
  • 运维常见的22个故障排查和10个问题解决技巧大汇总!
  • 解决 TensorFlow 2.x 中的 “AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘“ 错误
  • 新风机注意事项有哪些?
  • GitHub基础
  • 读书笔记--未来简史关键金句和阅读感悟
  • 【Vue2.0源码学习】生命周期篇-销毁阶段(destroy)
  • 代理IP与Socks5代理在多领域的卓越应用
  • kafka怎么实现零拷贝(Zero-Copy)的?
  • Hive【Hive(四)函数-单行函数】
  • C语言学生成绩录入系统
  • 操作系统对内存的管理:分配与回收,虚拟内存,内存容量的扩充,内存保护,补充(链接方式、装入方式)
  • [开源]基于Vue的拖拽式数据报表设计器,为简化开发提高效率而生
  • 微信小程序——CSS3渐变
  • CCF中国开源大会专访|毛晓光:“联合”是开源走向“共赢”的必由之路
  • 多校联测11 8ady
  • 【软考】9.1 顺序表/链表/栈和队列
  • 来 来 来 国家开放大学模拟题型 训练
  • 【ONE·Linux || 多线程(二)】
  • pandas.DataFrame.to_excel:在同一个sheet内追加数据
  • 基于卷积神经网络的图像识别技术研究与实践
  • Linux防火墙之--SNAT和DNAT
  • Bean注入方式:@Autowired、@Resource的区别
  • 软件设计原则 1小时系列 (C++版)
  • 数据结构--》解锁数据结构中树与二叉树的奥秘(一)
  • 23.4 Bootstrap 框架5