就像所有的好例子一样,你简化了你实际想要做的事情。这很好,但值得注意的是,python在类和实例变量方面有很大的灵活性。方法也是如此。为了获得很好的可能性,我建议阅读Michael Fötsch' new-style classes introduction,特别是第2至6部分。

在开始时需要记住很多工作的一件事是python不是java。不仅仅是陈词滥调。在java中,编译整个类,使命名空间的解析变得非常简单:任何在方法外(任何地方)声明的变量都是实例(或者,如果是静态的,类)变量,并且可以在方法中隐式访问。

使用python,宏伟的经验法则是有三个名字空间按顺序搜索变量:

函数/方法

当前模块

内置命令 LI>

{begin pedagogy}

这个例外是有限的。发生在我身上的主要原因是,当加载类定义时,类定义是它自己的隐式名称空间。但是,只有在模块被加载时才会持续,并且在方法内完全被忽略。从而:

>>> class A(object):

foo = 'foo'

bar = foo

>>> A.foo

'foo'

>>> A.bar

'foo'但:

>>> class B(object):

foo = 'foo'

def get_foo():

return foo

bar = get_foo()

Traceback (most recent call last):

File "", line 1, in

class B(object):

File "", line 5, in B

bar = get_foo()

File "", line 4, in get_foo

return foo

NameError: global name 'foo' is not defined{end pedagogy}

最后,需要记住的是,您可以访问任何您想要访问的变量,但可能不会隐式地访问。如果你的目标简单明了,那么去Foo.bar或self.bar可能就足够了。如果你的例子变得越来越复杂,或者你想做一些像继承一样的花哨的东西(你可以继承静态/类方法!),或者在类中引用你的类的名字的想法对你来说似乎是错误的,请检查介绍我链接。

python中类变量的访问方式_在Python中,如何访问类方法中的“静态”类变量相关推荐

  1. python的变量名有哪些_【python字符串做变量名的方法有哪些?这些方法对python应用很重要】- 环球网校...

    [摘要]python的功能都是建立在代码之上的,不过你知道python字符串做变量名的方法有哪些?这些方法对python应用很重要,如果你想学好python,那么本文内容一定要自己试试,毕竟实践出真知 ...

  2. python函数调用的三种方式_判断python对象是否可调用的三种方式及其区别

    基本上判断python对象是否为可调用的函数,有三种方法: 1.使用内置的callable函数 callable(func) 用于检查对象是否可调用,返回True也可能调用失败,但是返回False一定 ...

  3. python连接mysql三种方式_用 Python 连接 MySQL 的几种方式详解

    每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发.亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Pyt ...

  4. python中类的定义和使用_在Python中定义和使用类

    我正在学习Python,我有一些代码没有完成我认为它应该做的事情.我使用的是v3.4.3.最有可能的问题是:class Router: '''A representation of a router' ...

  5. python中类变量和实例变量详解

    python中类变量和实例变量详解 在了解类变量和实例变量之前,首先要知道类变量和实例变量的定义. 类变量:可在类的所有实例之间共享的值,就是指不是单独分配给每个实例,实例可以调用类变量. 实例变量: ...

  6. python基础语法加爬虫精进_从Python安装到语法基础,这才是初学者都能懂的爬虫教程...

    Python和PyCharm的安装:学会Python和PyCharm的安装方法 变量和字符串:学会使用变量和字符串的基本用法 函数与控制语句:学会Python循环.判断语句.循环语句和函数的使用 Py ...

  7. 什么是python语言的动态类型机制_理解Python的Dynamic typing

    Python的Dynamic typing有些类似于C语言的指针,在C中,一个变量可以指向任何地址空间,在Python中,一个变量也可以指向任何type的数据对象.变量的指向可以在程序运行过程中变化, ...

  8. 关于python浮点数类型错误的是_关于Python语言的浮点数类型,以下选项中描述错误的是...

    [单选题]关于Python字符串,以下选项中描述错误的是 [单选题]以下程序的输出结果是: lcat =["狮子","猎豹","虎猫",&q ...

  9. python列表中单个元素的访问方式_从boost::python::object列表中获取单个元素,用于python routin...

    我有一个c++boost python对象(PyObject*上的boost包装器)用于python列表PyObject * pyList = func(...); boost::python::ob ...

最新文章

  1. C# 引用类型和值类型
  2. Python 机器学习之项目实践
  3. MySQL中的组函数(聚合函数)
  4. springboot多数据源配置_SpringBoot-配置多数据源
  5. linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令
  6. python命令行输入函数回退_Anaconda--成功解决python2与python3之间随意切换的问题!...
  7. linux java 环境配置_Linux开发环境配置——java
  8. vs code配置python环境mac_Mac下搭建基于VSCode的Python开发环境
  9. Spring AOP实现及运行期调用原理分析
  10. Unicode汉字编码表
  11. Python网络爬虫经典书籍推荐
  12. 自动登录163邮箱发送邮件(Python+Selenium)
  13. 儿童摄影html代码源,HTML5织梦dede儿童摄影/影楼/写真/摄影工作室网站模板
  14. web前端---css基础
  15. python在excel应用实例视频-超简单:用Python让Excel飞起
  16. 如何把苹果文件APP里的Word文档传到手机备忘录
  17. python xlwt表格写入操作
  18. QT案例实战1 - 从零开始编写一个OCR工具软件 (8) Pdf读取展示/截图/文字识别
  19. 刷(shui)题记录 2021.12
  20. 前端实现搜索关键字高亮功能:

热门文章

  1. linux c之在终端如何依赖.o文件(静态链接库)运行C文件的命令
  2. C和指针之函数之求最大公约数
  3. linux之man命令用法入门
  4. java继承与覆盖_简单的继承,方法重载与方法覆盖
  5. 基于文本知识库的强化学习技术——Learning to Win by Reading Manuals in a Monte-Carlo Framework
  6. php框架中uri路由机制,URI 路由 — CodeIgniter 3.1.5 中文手册|用户手册|用户指南|中文文档...
  7. 这是哪里来的小妖精!!!
  8. 微信功能“拍一拍”,都有谁在“拍”你?
  9. 你们要的印度布线,这是一种极端的牛X
  10. 如何用大数据找到男/女朋友?