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类和对象

python是一门面向对象的语言,所以它拥有面向对象的相关基本功能,这里并不准备对面向对象长篇大论,只说一些python类和对象的一些特殊点,方便以后查阅。

1、类属性和对象属性要分清

在python中,一切皆对象,类自然也是对象,既然是对象,那就可以拥有自己的属性和方法

class ParentCls(object):
    a = 10
    def __init__(self):
        self.c = 100
ins = ParentCls()
print(ParentCls.a) #-->10
print(ins.a) #-->10
print(ins.c) #-->100
print(ParentCls.c) #-->AttributeError: type object 'ParentCls' has no attribute 'c'

在上面的代码可以看出,ParentCls有属性a,ins有属性c,同时ins又可以使用ParentCls的属性a,但是ParentCls是不能使用ins的属性c的。

注意上面说的是使用而不是拥有,为什么呢,看下面的代码

ParentCls.a = 11
print(ParentCls.a)    #-->11
print(ins.a)          #-->11

那么要怎么样让ins也拥有属性a呢,很简单,python是动态语言,很容易添加属性

ins.a = 100
'''
从这一刻开始,ParentCls和ins都拥有各自的属性a,他们互不影响
'''
print(ParentCls.a)       #-->11
print(ins.a)             #-->100
ParentCls.a = 1000
print(ParentCls.a)       #-->1000
print(ins.a)             #-->100

是不是感觉跟作用域一样,不错,可以这么理解:ParentCls是一个全局作用域,ins是局部作用域,在局部作用域自然是可以使用全局作用域内定义的变量的,而一旦我们在局部作用域执行了 a=... 的时候,就代表定义了一个局部变量a,局部变量的a和全局变量的a就是两个a了

2、保护属性和私有属性

保护属性以? _ 开头,私有属性以 __ 开头,保护属性只是在编码风格上不建议使用,实际上还是能调用的,私有属性会做矫直,在变量名前加上 _类名 ,所以用原名字是不能访问的

class ParentCls(object):
    _a = 'hello'
    __b = 'world'

ins = ParentCls()
print(ins._a)     #-->Tip:Access to a protected member _a of a class
print(ins._ParentCls__b)    #-->Tip:Unresolved attribute reference '_ParentCls__b' for class 'ParentCls' 
输出:
hello
world

print(ins.__b)       #-->AttributeError: 'ParentCls' object has no attribute '__b'

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-05 23:30:09  更:2022-07-05 23:31:02 
 
开发: 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 11:54:12-

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