python tutorial_Python Tutorial笔记
一、类(PT第九章)
9.3.4 方法对象
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
xf = x.f
while True:
print xf()
方法的特别之处在于实例对象被作为函数的第一个参数传给了函数。在我们的示例中,调用x.f()完全等同于MyClass.f(x)。一般情况下,以n
个参数的列表调用一个方法就相当于将方法所属的对象插入到列表的第一个参数的前面,然后以新的列表调用相应的函数。如果你还是不明白方法的工作原理,了解一下它的实现或许有帮助。引用非数据属性的实例属性时,会搜索它的类。如果这个命名确认为一个有效的类属性即函数对象,就会将实例对象和函数对象封装进一个抽象对象:这就是方法对象。以一个参数列表调用方法对象时,它被重新拆封,用实例对象和原始的参数列表构造一个新的参数列表,然后以这个新的参数列表调用对应的函数对象。
9.3.5 类和实例变量
一般来说,实例变量用于对每一个实例都是唯一的数据,类变量用于类的所有实例共享的属性和方法:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
a=MyClass()
b=MyClass()
print a.i is b.i
print a.i is MyClass.i
a.i=5
print a.i is b.i
print a.i is MyClass.i
重要的警告:默认值只计算一次。这使得默认值是可变的对象如列表、字典或大部分类的实例时会有所不同
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
def t(self,L=[]):
L.append('a')
return L
a=MyClass()
b=MyClass()
print a.t()
print b.t()
9.4 补充说明
通常,方法的第一个参数称为self。这仅仅是一个约定:名字self对 Python 而言绝对没有任何特殊含义。但是请注意:如果不遵循这个约定,对其他的 Python 程序员而言你的代码可读性就会变差,而且有些类 查看 器程序也可能是遵循此约定编写的。
问题:为啥p方法访问不到o,但如果在__init__函数里定义了o就可以访问呢
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
self.o=123
return 'hello world'
def t(self,L=[]):
L.append('a')
return L
def p(self):
print self.o
a=MyClass()
a.p()
9.8 异常也是类
class B:
pass
class C(B):
pass
class D(C):
pass
for c in [B, C, D]:
try:
raise c()
except D:
print "D"
except C:
print "C"
except B:
print "B"
9.9 迭代器
class Reverse:
"""Iterator for looping over a sequence backwards."""
def __init__(self, data):
self.data = data
self.len=len(data)
self.index=-1
def __iter__(self):
return self
def next(self):
if self.index == self.len-1:
self.index=-1
raise StopIteration
self.index = self.index + 1
return self.data[self.index]
r=Reverse('abc')
for x in r:
print x
print r.index
二、标准库概览(PT第十、十一章)
导入模块语句
模块即为一个py文件,模块名就是py文件名去掉.py,import后面接的就是模块名,不同的模块可以放在不同的包(就是文件夹啦,from后面接的那个就是包名)里,导入方法有两种,比如包名叫做package,模块名叫module,这个模块里有个方法叫做function(),有个类叫Class
方式1:
import package.module
#调用方法的方式为
package.module.function()
import package.module
#调用方法的方式为
package.module.Class()
方式2:
from package import module
#调用方法的方式为
module.function()
而且,import后面可以接模块内的方法名,from后面接模块名,比如:
from package.module import function
#可以直接调用
function()
from package.module import Class
#可以直接调用
Class()
然而并不存在import package.module.function的用法
python tutorial_Python Tutorial笔记相关推荐
- FreeCAD学习笔记——Python scripting tutorial
Python scripting tutorial 1. Object和ViewObject FreeCAD从一开始就作为命令行应用程序工作,没有用户界面.结`几乎所有东西都被分为"几何&q ...
- 【Python基础】Python 3 Tutorial 专栏第一讲:Python的简单操作、数值运算、字符串、原位操作等...
整理|Vincent 编辑|吴嘤嘤 今天开始,我们正式迈入Python 3 Tutorial 专栏第一讲的学习. 本讲目录: ·你的第一个程序 ·简单操作 ·浮点数 ·其他数值运算 ·字符串 ·简单输 ...
- python tensorflow学习笔记(六)最小二乘法
说明:本文不包括TensorFlow相关内容 概念 概念:回归分析 回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.运用十分广泛,回归 ...
- python tensorflow学习笔记(五)矩阵乘法运算
相关公式 [0.36424586843872840.6675075448915823]×[0.134750808390697090.5863696301031353]=[0.44048858] \be ...
- python做直方图-python OpenCV学习笔记实现二维直方图
本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...
- Python中知识点笔记
Python中知识点笔记 Wentao Sun. Nov.14, 2008 来这个公司11个月了,最开始来的一个笔记本用完了,里面都是工作时记录的一些片段,看到一块自己当时学/写 python程序时记 ...
- python 队列 一次取多个_Queue 队列模块-Python成为专业人士笔记
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com 介绍 队列模块能实现多生产者.多消费者的队列 ...
- python 慕课课程笔记(一)
python 慕课课程笔记 1.python 是动态语言,而 java 是静态语言.动态语言变量本身的类型时不固定的,而静态语言在变量定义时就必须指定变量的类别. 2. 在python 代码中书写 a ...
- python 正则学习笔记
python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...
最新文章
- PYTHON学习笔记-DAY-16
- 在MVC框架上定时执行某种操作
- IPod在Linux下的实战
- python import出错_python import的一些问题
- vue处理json数据的原理_Vue解析json数据的渲染
- 盘点18个免费的WordPress主题后台选项开发框架
- NeurIPS 2020 | 微软亚研院论文摘录之强化学习GAN篇
- 2016/9/23总结电脑内容
- hiveserver2的高可用HA
- Microsoft.System.Center.Operations.Manager.2007 中文版完整光盘下载地址
- 另一个串口verilog 代码
- Verilog的模块与端口 语法
- SQLite3 编译
- 实习测试的一个月总结与心得
- 【CSS】几种尺寸单位
- 前端开发是什么以及我们要学习什么
- 【科普】Windows客户端加域管理(AD)
- 能 ping 通但端口不通时端口可用性探测说明
- 搭建vmware虚拟机,搭建docker环境
- 【时间序列分析】05.谱函数与谱密度
热门文章
- 微信小程序————经纬度转化为具体位置(逆地址解析)
- 一千行 MySQL 详细学习笔记
- 横竖三个数的和相等_怎样证明 0.999… = 1?数值上是相等的,那么两者的区别是什么?...
- linux双核对线程,Linux检查双核(及多核)CPU信息
- 环境复制_PostgreSQL热备之流复制环境搭建以及常见问题处理
- 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...
- 华为交换机ipv6默认路由配置_静态路由和默认路由的配置
- .html追加的触发js事件,JavaScript
- CentOS6.5启动网络
- IntelliJ IDEA部署javaweb项目