Python Tutorial three
来源:互联网 发布:程序员等级划分 编辑:程序博客网 时间:2024/04/28 10:49
七,Class
- nonlocal和global关键字
def scope_test():
def do_local():
spam = "local spam"
def do_nonlocal():
nonlocal spam #nonlocal 将引用外层已存在变量,但非全局变量
spam = "nonlocal spam"
def do_global():
global spam #声明全局变量,存在与全局域中
spam = "global spam"
spam = "test spam"
do_local()
print("After local assignment:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)
do_global()
print("After global assignment:", spam)
scope_test()
print("In global scope:", spam)
- 类基本定义格式
class MyClass:
a=1234; #直接在类里的会变为静态变量被所有对象共用,称为类变量
#构造函数
def __init__(self,value):
self.i=value #属性定义和赋值应该在构造函数里,称为实例变量
self.__private="privatevalue"#私有变量
#析构函数
def __del__(self):
pass
#函数定义
def f(self):
return 'hello world'
继承父类:
class DerivedClassName(BaseClassName): #多重继承(name, name, name)
<statement-1>
.
.
.
<statement-N>
- Isinstance()——判断一个对象是否是类的一个实例
Issubclass()——判断一个类是否是另一个类的子类
- 在类中实现__iter__和__next__函数可以实现迭代器,用于for a in b语句
#自定义类中实现迭代器
class MyItertator:
#构造函数
def __init__(self,data):
self.data=data
self.index=len(data)
#定义__iter__和__next__用来实现迭代器
def __iter__(self):
return self
def __next__(self):
if self.index == 0:
raise StopIteration
self.index =self.index-1
return self.data[self.index]
#使用示例
my=MyItertator("barret")
for m in my:
print(m)
- yield关键字可以自动生成__iter__和__next__函数,实现迭代器。
其内在逻辑为:yeild将语句执行的结果全部保存,在调用迭代器的__next__方法时,yield会从保存的数据中取一个值,直到所有值取完。
#使用yield自动生成迭代器
def reverse(data):
for index in range(len(data)-1, -1, -1):
yield data[index] #保存了for语句的所有执行结果
for char in reverse('golf'): #这里char或映射到yield保存的每个结果
print(char)
- Python Tutorial three
- UNIX Tutorial Three
- UNIX Tutorial Three
- Python Tutorial
- Python Tutorial
- Python Foundation - part three
- Python Tutorial 第一章 开胃菜
- 重读《Python Tutorial》
- [翻译] python Tutorial 之一
- Python Excel Tutorial 指南
- python network programming tutorial
- python network programming tutorial
- SQLite Python tutorial
- dbus-python tutorial 学习
- Python Excel Tutorial 指南
- Python Excel Tutorial 指南
- Python tutorial笔记 class
- Python Numpy Tutorial
- 操作系统页面管理机制的启动流程-xv6
- 检查是不是一个有效的date对象
- 如何生成dump文件
- 项目部署tomcat设置
- 17个月,是时候离开了
- Python Tutorial three
- 【计算机网络】网络编程中为什么client不建议绑定
- 编写手机信息页面流程
- CPU飙高调试
- Java基础知识(四)
- C++11系列-区间迭代
- 关于网页页头的“设为首页”和“联系我们”位置互换问题
- 数据结构与算法 -- 时间复杂度
- Unit 4-Lecture 1:Intro to Discrete Probability