下面的代码创建了一个便条并添加到笔记本中。

我的问题与全局变量last_id更相关。当我将其声明为类变量(即类内注释)时,会得到以下错误,但当我在类外声明时,我的代码可以正常工作。

以下是我的澄清:为什么它不接受类变量。

当我在函数中声明为全局变量时,为什么需要定义last_id?

Error:C:\Python27\Basics\OOP\formytesting>python notebook.py

Traceback (most recent call last):

File "notebook.py", line 38, in

firstnote = Note('This is my first memo','example')

File "notebook.py", line 10, in __init__

last_id += 1

NameError: global name 'last_id' is not defined

code.pyimport datetime

last_id = 0

class Note:

def __init__(self, memo, tags):

self.memo = memo

self.tags = tags

self.creation_date = datetime.date.today()

global last_id

last_id += 1

self.id = last_id

#global last_id

#last_id += 1

#self.id = last_id

def __str__(self):

return 'Memo={0}, Tag={1}, id={2}'.format(self.memo, self.tags,self.id)

class NoteBook:

def __init__(self):

self.notes = []

def add_note(self,memo,tags):

self.notes.append(Note(memo,tags))

def __iter__(self):

for note in self.notes:

yield note

if __name__ == "__main__":

firstnote = Note('This is my first memo','example')

print(firstnote)

Notes = NoteBook()

print("Adding a new note object")

Notes.add_note('Added thru notes','example-1')

Notes.add_note('Added thru notes','example-2')

for note in Notes.notes:

print(note.memo,note.tags)

for note in Notes:

print(note)

print("Adding a new note object----End")

python声明一个全局变量_全局变量声明Python相关推荐

  1. python构造一个二叉树_如何用python构造一个n层的完全二叉树

    展开全部 用python构造一个5261n层的完全二叉树4102的代码如下: typedef struct { int weight; int parent, lchild, rchild; } HT ...

  2. python遇到一个问题_新手学习python遇到的问题

    今天,我想为大家讲讲我最近遇到的问题然后我的想法, 一:这是我跟一个学生的对话,他刚毕业,找不到工作,又什么都不会,我说我跟很多学生说过,趁着在学校还有时间,好好学习一个技术,毕业找不到工作真的很痛苦 ...

  3. python读取一个图像_从图像处理python的文件中读取多个图像

    嗨,我有一个脚本来运行图像处理.但是我想用一个循环或者其他方法从一个文件中读取多个图像 例如C:\Users\student\Desktop\Don\program (opencv version)\ ...

  4. python编写一个名片_详解Python做一个名片管理系统

    名片管理系统有两个模块组成:cards_main.py和 cards_tools.py一个是主程序,另一个是封装增删改查函数的被调用程序 代码如下 cards_main.py #! /usr/bin/ ...

  5. python写一个接口_如何用python写接口

    如何用python写接口?具体步骤如下: 1.实例化server 2.装饰器下面的函数变为一个接口 3.启动服务 开发工具和流程: python库:flask =>实例化server:serve ...

  6. python定义一个列表_如何在Python中创建用户定义的列表?

    你需要将怪物的数量发送给使用它的函数:def welcome(): number = monsters() print('Alright, ' + str(number) + ' monsters.' ...

  7. python制作一个计时器_如何在python中创建一个反应计时器作为GUI?

    我有一个反应计时器的问题.我想在我的程序中有一个按钮,它能告诉我从定时器开始按下按钮所花的时间.在 假设我打开我的程序,我想要一个按钮,如果我点击它,它将打印出计时器启动后我按下它所花的时间.然后在我 ...

  8. python定义一个未知数_如何在python中创建未知数量的变量

    我正在制作一个程序,可以读取电子表格.对于每一列,我的程序将为该列的每一行中的所有值创建一个列表.为了决定我需要多少个列表,我有一个变量columnBound,它是电子表格中列的总数.我如何制作一个程 ...

  9. 手把手教你如何用Python制作一个电子相册?末附python教程

    这里简单介绍一下python制作电子相册的过程,主要用到tkinter和pillow这2个库,tkinter用于窗口显示照片,pillow用来处理照片,照片切换分为2种方式,一种是自动切换(每隔5秒) ...

  10. python局部静态变量_全局变量、局部变量和静态变量

    全局变量和局部变量在写代码时需要区分清楚,不然会出大问题.不同语言定义不同范围的变量的写法有很大的区别. 那么静态变量是在什么场景下用到呢?我们来假设这样一个场景:在函数内部定义的变量,当程序执行到它 ...

最新文章

  1. 流式计算中为什么需要时间戳和WaterMark
  2. 模块化加载_Java9模块化的类加载机制实现剖析
  3. 【Linux】Ubuntu下进行C语言编程
  4. android 环绕布局,Android自定义View实现圆形环绕效果
  5. hdu Candy Sharing Game
  6. 【Linux入门学习之】Linux连接文件:硬连接和软连接
  7. Python程序设计语言基础06(完):组合数据类型
  8. c语言程序计算4阶行列式的值,如何用降阶法求解四阶行列式的计算,请帮我编一个C语言程序。...
  9. 66、加一(python)
  10. AutoIT如何制作自动化安装脚本-SketchUp 2017
  11. 小程序项目:基于微信小程序的校园互助平台——计算机毕业设计
  12. python之微信自动恢复
  13. 设计篇-网页设计规范
  14. 外媒称百度AI领跑全球,一场“战疫”告诉你为什么
  15. 3D可视化应急物资仓库管理系统-应急物资可视化系统-数字孪生
  16. UCI、KEEL下载数据集
  17. Mac修改密码导致钥匙串
  18. SPI的模拟应用——OLED以及时钟模块的应用(一)SPI协议介绍及利用协议实现两机通信(51单片机)
  19. ----- 前端面试题 -----
  20. 微信和支付宝又更新了,这几个功能很赞

热门文章

  1. 华为面试经历-此文献给准备去华为面试的同胞们
  2. linux正确关闭防火墙命令,linux关闭防火墙命令
  3. 从零开始学Python第05课:分支结构
  4. Python 高级编程
  5. HDU 1263-水果
  6. 大型json文件格式化【超简单】
  7. 前端面试之事件循环机制
  8. phpmailer 私密抄送_PHPMailer 发送邮件(含详细介绍及使用方法说明)
  9. python目标识别算法_深度学习目标检测系列:一文弄懂YOLO算法|附Python源码
  10. Mac:Firefox的副本已经打开。一次只能打开一份Firefox