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细枝末节个人知识记录相关推荐

  1. python笔记基础-Python入门基础知识学习笔记之一

    为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...

  2. 【学习笔记】Python 基础零碎知识

    Python 基础零碎知识 条件表达式 比如上面的if条件判断,我们可以用条件表达式(Conditional Expression)更加简洁的书写. y = math.log(x) if x > ...

  3. python编程思维导图_用来梳理 Python 编程核心知识15张思维导图

    原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...

  4. 计算机二级考试python+C语言通过记录

    计算机二级考试python+C语言通过记录 突然想到可以在这里晒晒成绩,也是记录一种. 虽然二级考试证书并没有太大价值,在学校的评价体系中也没有一席之地,但相较于靠刷题考取其他等级证书,却对知识一无所 ...

  5. Python神经网络编程学习记录(一)

    Python神经网络编程学习记录(一) 总结:共三章.两个附录.第1章介绍了神经网络中所用到的数学思想.第2章介绍使用Python实现神经网络,识别手写数字,并测试神经网络的性能.第3章带领读者进一步 ...

  6. Python学习关键tip记录

    Python学习关键tip记录,因为是学习中自己总结的,可能会有错误,欢迎指正(持续更新) 一.基础知识: 1.函数调用前类型是function,调用后没有特殊指定ruturn返回值默认为None. ...

  7. python前端基础知识总结 及部分练习题

    python前端基础知识总结 知识总结 认识Python 发展历史 版本选择 python2.7是python2的最后一个版本,到2020年将不再维护 python3.6是python3最新的版本,是 ...

  8. python个人健康自助记录查询系统 毕业设计源码152015

    Python个人健康自助记录查询系统 摘 要 目前随着人们对健康认识的不断深入,健康观念也正在由有病治病向无病预防的方向改变,人们开始更加注重生活的质量,追求更健康,更长寿.因此,开发一个面向个人和家 ...

  9. Web前端理论知识记录

    Web前端理论知识记录 Elena · 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session)中 ...

最新文章

  1. 组合特征(一)tfidf(word+article)
  2. [置顶] Hibernate从入门到精通(十一)多对多双向关联映射
  3. 磁盘被占满   系统出现 no space left on 报错(block被占满/inode被占满)
  4. 神策数据携手绿城服务 筑就幸福绿城数据驱动
  5. 我一个女孩子居然做了十年硬件。​。。
  6. Switch语句的参数是什么类型的?
  7. aggregation java_Elasticsearch Aggregation 多个字段分组统计 Java API实现
  8. android layout 渲染,java – 渲染android.support.design.widget.CoordinatorLayout的问题
  9. android开发那些事儿(四)--调用系统相机像素过低
  10. workbench求解闭合状态尼龙槽环
  11. java补码运算代码_计算机原码、补码、反码与java移位运算符(//)
  12. 计算机专业Java必读书单,高清PDF电子版下载
  13. 欧拉环游和中国邮递员问题
  14. 英语简单句——英语句子的基本结构、句子的成分(谓语、主语)、简单句的考点分析
  15. python字典包含指定键_筛选python字典中键包含特定字符串的项
  16. 长沙IT培训学校有哪些?IT培训选线上还是线下?
  17. Basset: learning the regulatory code of the accessible genome with deep convolutional neural network
  18. keep-alive 的详细介绍
  19. 【OP都能理解之】 张量
  20. PDF转换器的使用步骤

热门文章

  1. jav中级面试题概览
  2. 【ZUFE-经费报销】浙江财经大学发票报销经验分享(以新苗报销为例)
  3. 管理信息系统【三】之 管理信息系统技术基础
  4. 第一章 程序设计和C语言
  5. git同步本地与远程代码命令
  6. 王者荣耀游戏简介-1
  7. vue 用户点击不同的导航菜单,显示对应菜单所展示的区域
  8. 16日,7月,2012 - 昨天晚睡 | 整理电脑 | 没有进度
  9. 输入一个整数,判断这个数是否为素数,(素数是除1以外只能被1和他本身整除的自然数)
  10. 3D步进式全景漫游解决方案,虚拟全景解决方案,一步一景全景解决方案