python在开头声明全局变量_全局变量声明Python
我有下面的代码片段,可以创建一个笔记并添加到笔记本中.
我的问题与全局变量last_id更相关.当我将它声明为类变量时,即在Class Note中,我得到以下错误但是当我在类外声明时,我的代码工作正常.
以下是我的澄清:
>为什么不接受类变量.
>当我在函数中将其声明为全局变量时,为什么需要定义last_id?
错误:
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.py
import 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相关推荐
- python脚本开头怎么写_浅谈Python脚本开头及导包注释自动添加方法
浅谈Python脚本开头及导包注释自动添加方法 1.开头:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定 #!/usr/bin/python 是用来 ...
- python中全局变量_玩转Python,使用全局变量
这是本专栏的第一篇文章,开设这个专栏的目的很单纯,就是向读者的各位展示Python编程的乐趣.我在工作中发现一个现象:热爱编程的人总是能从繁琐的任务中发现其中的乐趣,进而对这门语言了解的更深入.而只是 ...
- python tab和空格混用_我的 Python 编码规范
python 文件的组成 为了便于描述,先上一个 demo #!/usr/bin/env python# -*- coding: utf-8 -*-"""通常这里是关于本 ...
- python将字符串逆序_为什么说Python是一门伟大的入门语言?(附免费教程)
Python 是一门伟大的入门语言.作为一门伟大的编程语言,一定要具备一些特征,其中有五项特征是非常重要的: 非常棒的首次体验:就像书的开始,首先一定要能够"沉迷",学习新知识一定 ...
- eval在python中是什么意思_如何在Python中使用eval ?
Python中的 eval是什么? 在Python中,我们有许多内置方法,这些方法对于使Python成为所有人的便捷语言至关重要,而eval是其中一种.eval函数的语法如下: eval(expres ...
- python函数变量的作用域_学不会的Python函数——变量作用域
1. LEGB函数 Python中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的.我们先来看一段代码. 上述代码有两个变量a,当在test函数中输出变量a的值是,为什么 ...
- python如何初始化对象数组_如何理解Python中的面向对象编程?
(由Python大本营付费下载自视觉中国) 作者 | Radek Fabisiak 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 现如今面向对象编程的使用非常广泛,本文 ...
- python如何运行py程序_如何用Python汇款:Web3.py教程
Python开发人员对于以太坊和区块链库的技术练习. 警告:下面的教程包含这些元素:显式加密.点对点金融服务以及可能的违规行为.这些例子仅仅是为了说明Python区块链的强大功能和便捷性. 嗨,Pyt ...
- python中的列表理解_掌握『Python列表理解』需要知道的9件事,你知道了吗?
越来越多的人开始学习Python,它已经成为最流行的编程语言之一,这几乎发生在所有领域.比如网络开发.科学计算,当然还有人工智能. 无论想用python干什么,都绕不开学习Python的数据结构.变量 ...
- 【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型...
下面的内容来自:http://www.cnblogs.com/blueskylcc/p/5332642.html, 对方也是转的,不过没有找到转载的出处: 1.#!/usr/bin/python 是用 ...
最新文章
- 快速开发一个自定义 Spring Boot Starter ,希望你也会
- Win XP系统的开机菜单具体含义
- 使用 Autofac 进行依赖注入
- gprs连接中断记录_请收好!脉搏波血压计连接天天血压APP使用指南
- 图像处理之基础---图像高效不失真缩放既卷积应用
- 如何獲得GridView內LinkButton的RowIndex? (初級) (.NET) (ASP.NET) (轉載)
- 塘沽十三中2021年高考成绩查询,2020天津高考成绩查询
- pdf虚拟打印机下载win7_闪电PDF虚拟打印机使用教程,超级简单的方法
- atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模
- 两年时间,年薪从16到45,一个30岁程序猿的碎碎念
- 反射的学习(参考尚硅谷视频)
- 端口扫描php,PHP实现在线端口扫描
- FPGA 主流芯片选型指导和命名规则(一)
- ubuntu打开网易云音乐
- 软考信息系统监理师:2016年4月22日作业
- 解决 macbook m1 苹果笔记本电脑 关闭盖子 休眠
- Docker配置mc服务器
- AutoLayout(自动布局)入门
- 基于PSO工具箱的函数寻优算法
- 2021 前端 VUE 面试题总汇
热门文章
- 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image
- protobuf中 repeated[Ptr]Field的序列化
- Kubernetes1.5新特性(一):Kubelet API增加认证和授权能力
- 用node搭一个静态服务
- shell脚本(查看多台服务器端口)
- 要不来重新认识Spring事务?三歪又学到了
- 为什么大部分人做不了架构师?这2点是关键
- 深入Lock锁底层原理实现,手写一个可重入锁
- 2020 年 DevOps 七大发展趋势
- 不懂卷积神经网络?别怕,看完这几张萌图你就明白了