当前位置:
首页 > 编程开发 > Python基础教程 >
-
python基础教程之python基础(27):类成员的修饰符、类的特殊成员
本站最新发布 Python从入门到精通|Python基础教程
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
回到顶部(go to top)
1. 类成员的修饰符
类的所有成员在上一步骤中已经做了详细的介绍,对于每一个类的成员而言都有两种形式:
公有成员,在任何地方都能访问
私有成员,只有在类的内部才能方法
私有成员和公有成员的定义不同:私有成员命名时,前两个字符是下划线。(特殊成员除外,例如:__init__、__call__、__dict__等)
- class C:
- def __init__(self):
- self.name = '公有字段'
- self.__foo = "私有字段"
私有成员和公有成员的访问限制不同:
1.1 静态字段
公有静态字段:类可以访问;类内部可以访问;派生类中可以访问
私有静态字段:仅类内部可以访问
公有静态字段:
- class C:
- name = "公有静态字段"
- def func(self):
- print(C.name)
- class D(C):
- def show(self):
- print(C.name)
- C.name # 类访问
- obj = C()
- obj.func() # 类内部可以访问
- obj_son = D()
- obj_son.show() # 派生类中可以访问
私有静态字段:
- class C:
- __name = "公有静态字段"
- def func(self):
- print(C.__name)
- class D(C):
- def show(self):
- print(C.__name)
- C.__name # 类访问 ==> 错误
- obj = C()
- obj.func() # 类内部可以访问 ==> 正确
- obj_son = D()
- obj_son.show() # 派生类中可以访问 ==> 错误
1.2 普通字段
公有普通字段:对象可以访问;类内部可以访问;派生类中可以访问
私有普通字段:仅类内部可以访问
如果想要强制访问私有字段,可以通过 【对象._类名__私有字段明 】访问(如:obj._C__foo),不建议强制访问私有成员。
公有普通字段:
- class C:
- def __init__(self):
- self.foo = "公有字段"
- def func(self):
- print(self.foo) # 类内部访问
- class D(C):
- def show(self):
- print(self.foo) # 派生类中访问
- obj = C()
- obj.foo # 通过对象访问
- obj.func() # 类内部访问
- obj_son = D();
- obj_son.show() # 派生类中访问
私有普通字段:
- class C:
- def __init__(self):
- self.__foo = "私有字段"
- def func(self):
- print(self.foo) # 类内部访问
- class D(C):
- def show(self):
- print(self.foo) # 派生类中访问
- obj = C()
- obj.__foo # 通过对象访问 ==> 错误
- obj.func() # 类内部访问 ==> 正确
- obj_son = D();
- obj_son.show() # 派生类中访问 ==> 错误
方法、属性的访问于上述方式相似,即:私有成员只能在类内部使用
非要访问私有属性的话,可以通过 对象._类__属性名
回到顶部(go to top)
2. 类的特殊成员
前面介绍了Python的类成员以及成员修饰符,从而了解到类中有字段、方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用。无论人或事物往往都有不按套路出牌的情况,Python的类成员也是如此,存在着一些具有特殊含义的成员,详情如下:
2.1 __doc__
表示类的描述信息
- class Foo:
- """ 描述类信息,这是用于看片的神奇 """
- def func(self):
- pass
- print Foo.__doc__
- #输出:类的描述信息
2.2 __module__ 和 __class__
__module__ 表示当前操作的对象在那个模块
__class__ 表示当前操作的对象的类是什么
lib/aa.py:
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
栏目列表
最新更新
python发送邮件
python基础(27):类成员的修饰符、类的特殊
Python—创建进程的三种方式
Python openpyxl Excel绘制柱形图
Python学习笔记(九)
python基础-面向过程编程
Scrapy_redis主机连接虚拟机的数据库时显示
Scrapy对接Selenium
RabbitMQ消息队列
用python实现对元素的长截图
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能
将Session值储存于SQL Server中