Python细枝末节个人知识记录
from x import * 可以选择哪些不被引入
不能引入x.py中前面带下划线的变量,如:_y=10
可以定义 __all__变量指示哪些变量可以引入,如 __all__ =[‘a’, ‘lt’]
dir(module) 可以显示module对象所有的方法
如果类中的变量不想让用户直接修改,可以将变量定义为内部属性,如:
class account:def __init__(self, name):self.__name = namedef rename(self, name):self.__name = name
acct = account(name='wang')
print(acct.__name) #AttributeError,无此变量
print(acct._account__name) # 'wang'
acct._account__name = 'zhang' # 只能通过_类名__属性名修改,不推荐
如果像让用户简易的获得,但不让用户修改类名:
class account:def __init__(self, name):self.__name = name@propertydef name(self):return self.__name
acct = account('wang')
print(acct.name) # 调用name方法,并且通过@property外部属性直接返回结果
acct.name = 'zhang' # AttributeError,不允许直接赋值,只能通过方法赋值
类中的__repr__函数可以写这个类的描述,在直接print(类对象)的时候会调用__repr__
class account:def __init__(self, name):self.__name = namedef __repr__(self):return '这是一个调用函数'@propertydef name(self):return self.__name
acct = account('wang')
print(acct) # 这是一个调用函数
静态方法: @staticmethod,可以让类中的某个方法取消绑定状态,此方法不再和某一个对象进行绑定
class account:def __init__(self):pass@staticmethoddef add(x, y):return x + y
account.add(1,2) # 3
acct = account()
acct.add(1,2) # 3
类方法: @classmethod,让方法第一个参数指向当前类,并不特指某一个对象,也可以理解为取消绑定状态
class account:def __init__(self):pass@classmethoddef default(clz): # clz == accountreturn clz()
acct = account.default() # 等价于 acct = account()
可通过acct.__dict__ 或者 vars(acct) 来获取acct中的实例。只能获得实例的信息,而不能直接获得类中不属于实例的信息
class account:y = 20def __init__(self, x):self.x = x
acct = account(10)
acct.__dict__ # {'x': 10} # 无法获得y的信息
vars(acct) # {'x': 10}
acct.y # 20 在实例上找不到属性时,python会继续向上找类空间,找到则输出。
acct.y = 25 # 这种操作会直接在实例上额外创建属性y,而不会修改类空间中的y
account.y = 25 # 这个操作才会修改类空间中的y,同时会修改该类所有实例的类y值
Python细枝末节个人知识记录相关推荐
- python笔记基础-Python入门基础知识学习笔记之一
为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...
- 【学习笔记】Python 基础零碎知识
Python 基础零碎知识 条件表达式 比如上面的if条件判断,我们可以用条件表达式(Conditional Expression)更加简洁的书写. y = math.log(x) if x > ...
- python编程思维导图_用来梳理 Python 编程核心知识15张思维导图
原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...
- 计算机二级考试python+C语言通过记录
计算机二级考试python+C语言通过记录 突然想到可以在这里晒晒成绩,也是记录一种. 虽然二级考试证书并没有太大价值,在学校的评价体系中也没有一席之地,但相较于靠刷题考取其他等级证书,却对知识一无所 ...
- Python神经网络编程学习记录(一)
Python神经网络编程学习记录(一) 总结:共三章.两个附录.第1章介绍了神经网络中所用到的数学思想.第2章介绍使用Python实现神经网络,识别手写数字,并测试神经网络的性能.第3章带领读者进一步 ...
- Python学习关键tip记录
Python学习关键tip记录,因为是学习中自己总结的,可能会有错误,欢迎指正(持续更新) 一.基础知识: 1.函数调用前类型是function,调用后没有特殊指定ruturn返回值默认为None. ...
- python前端基础知识总结 及部分练习题
python前端基础知识总结 知识总结 认识Python 发展历史 版本选择 python2.7是python2的最后一个版本,到2020年将不再维护 python3.6是python3最新的版本,是 ...
- python个人健康自助记录查询系统 毕业设计源码152015
Python个人健康自助记录查询系统 摘 要 目前随着人们对健康认识的不断深入,健康观念也正在由有病治病向无病预防的方向改变,人们开始更加注重生活的质量,追求更健康,更长寿.因此,开发一个面向个人和家 ...
- Web前端理论知识记录
Web前端理论知识记录 Elena · 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session)中 ...
最新文章
- 组合特征(一)tfidf(word+article)
- [置顶] Hibernate从入门到精通(十一)多对多双向关联映射
- 磁盘被占满 系统出现 no space left on 报错(block被占满/inode被占满)
- 神策数据携手绿城服务 筑就幸福绿城数据驱动
- 我一个女孩子居然做了十年硬件。​。。
- Switch语句的参数是什么类型的?
- aggregation java_Elasticsearch Aggregation 多个字段分组统计 Java API实现
- android layout 渲染,java – 渲染android.support.design.widget.CoordinatorLayout的问题
- android开发那些事儿(四)--调用系统相机像素过低
- workbench求解闭合状态尼龙槽环
- java补码运算代码_计算机原码、补码、反码与java移位运算符(//)
- 计算机专业Java必读书单,高清PDF电子版下载
- 欧拉环游和中国邮递员问题
- 英语简单句——英语句子的基本结构、句子的成分(谓语、主语)、简单句的考点分析
- python字典包含指定键_筛选python字典中键包含特定字符串的项
- 长沙IT培训学校有哪些?IT培训选线上还是线下?
- Basset: learning the regulatory code of the accessible genome with deep convolutional neural network
- keep-alive 的详细介绍
- 【OP都能理解之】 张量
- PDF转换器的使用步骤