Python - 从类主体内部引用类名

2024-01-03

在Python中,我想要一个类属性,一个带有初始化值的字典。我写了这段代码:

class MetaDataElement:
    (MD_INVALID, MD_CATEGORY, MD_TAG) = range(3)
    mapInitiator2Type = {'!':MetaDataElement.MD_CATEGORY, 
                         '#':MetaDataElement.MD_TAG}

但是,当我尝试运行此代码时,收到一条错误消息“NameError:名称'MetaDataElement'未定义”。你可以帮帮我吗?

提前致谢。


你不能参考MetaDataElement当它正在建造时,因为它还不存在。因此,

class MetaDataElement:
    (MD_INVALID, MD_CATEGORY, MD_TAG) = range(3)
    mapInitiator2Type = {'!':MetaDataElement.MD_CATEGORY, 
                         '#':MetaDataElement.MD_TAG}

失败是因为它的构造本身mapInitiator2Type需要MetaDataElement拥有它还没有的属性。你可以想想你的常数MD_INVALID等作为类构造的局部变量。这就是为什么以下内容有效,正如 icktoofay 所写:

class MetaDataElement:
    (MD_INVALID, MD_CATEGORY, MD_TAG) = range(3)
    mapInitiator2Type = {'!': MD_CATEGORY,  # MD_CATEGORY is like a local variable!
                         '#': MD_TAG}

不过你可以参考一下类MetaDataElement在任何尚未解释的代码段中,例如

    def method_of_MetaDataElement(self):
        print MetaDataElement.MD_TAG

你甚至have参考MetaDataElement,在这里,因为MD_TAG不是一种局部变量,当method_of_MetaDataElement()被执行(MD_TAG仅在类构造期间定义为一种局部变量)。有一次上课MetaDataElement被建造,MD_TAG只是一个类属性,这就是为什么method_of_MetaDataElement()必须这样称呼它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 从类主体内部引用类名 的相关文章

  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • 在 Objective C 的类方法中引用类本身

    我希望我没有跳过 ObjC 手册中的这一部分 但是是否可以从类的一个类方法中引用该类 就像在 PHP 中一样 您将使用 this 来引用当前实例 而 self 引用实例的类 this 的 ObjC 等价物将是 self 那么 PHP 的 s
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像

随机推荐

  • python中存储时间长度的类型是什么?

    我正在使用 total time datetime time int total time text replace h replace m split 0 int total time text replace h replace m s
  • 无法在 Terminal.app OSX 上使用 Ctrl+A 和 Ctrl+E(bash 键绑定)

    因此 由于某些奇怪的原因 我无法在 Terminal app 中的 bash 上使用 A 和 E 但是我可以使用 C R Y L 和所有其他键绑定 绑定 p显示 C a 行首 C e 行尾 所以我认为还有其他东西阻碍了这些键绑定 知道我该如
  • 为什么UTF-8使用多个字节来表示某些字符?

    我最近经历了一个article http www sitepoint com do you know your character encodings 关于字符编码 我对那里提到的某一点感到担忧 在第一张图中 作者展示了字符 它们在各种字符
  • 如何将下一个最大数字插入数据库

    我编写了一段 mysqli 代码 它将把值插入数据库 insertsql INSERT INTO Teacher TeacherId TeacherForename TeacherSurname TeacherEmail TeacherAl
  • 在 Objective-C 中打印多页

    我有一个像这样的打印功能 void sendToPrinter int code NSPrintInfo printInfo NSPrintInfo sharedInfo NSPrintOperation printOp NSMutable
  • 在 Windows 应用商店应用程序中获取 CoreDispatcher 的正确方法

    我正在构建一个 Windows 应用商店应用程序 并且有一些代码需要发布到 UI 线程 为此 我想检索 CoreDispatcher 并使用它来发布代码 似乎有几种方法可以做到这一点 First way Windows Applicatio
  • 如何从列的每一行中删除重复的字符?

    如何使用 R 从列的字符串中删除重复字符 例如 这是我的专栏 df lt data frame name c A a a b c d d d B a b b b f C d d d d D a a 还有我期待的专栏 df lt data f
  • 如何向 pagedown 添加自定义图像标签?

    我正在尝试复制原始内容img自定义标签的功能img将添加到 pagedown 转换器的标记 例如 我复制原始行为 image url 1 1 http lolink com gives img src http lolink com 变成一
  • Django_Socketio 和 Apache

    我对网络开发还很陌生 最近我一直在使用 Django 制作一个网站 我对在网站中实现 websocket 非常感兴趣 为了实现这一点 我使用了 django socketio 可在 git hub 上找到 https github com
  • Android缩放动画闪烁

    我的应用程序中有框架布局 在框架中我有 ImageView 和 TextView 我一直需要框架布局反弹 我用 xml 制作了这个动画
  • 通过ObjectOutputStream将LinkedList写入文本文件但输出是垃圾

    当我尝试将链接列表的内容写入文本文件时 出现输出错误 try FileOutputStream out new FileOutputStream ValidMovesMatrix txt ObjectOutputStream oout ne
  • 当用户确认“离开页面”时触发 javascript 函数

    我正在使用下面的代码来触发confirmExit 当用户尝试离开页面时函数 window onbeforeunload confirmExit function confirmExit return Are you sure you wan
  • RxJava。顺序执行

    在我的 Android 应用程序中 我有一个演示者 它处理用户交互 包含某种请求管理器 如果需要 可以通过请求管理器将用户输入发送到请求管理器 请求管理器本身包含服务器 API 并使用此 RxJava 处理服务器请求 我有一个代码 每次用户
  • Oracle 不同模式上的表名相同吗?

    是否可以在不同模式上使用相同的表名称 而在一个数据库中的表上使用不同的数据 我认为我不应该创建多个数据库 包含相同的表名 而应该创建多个模式 就像是 Schema 1 table A table B Schema 2 table B tab
  • 图解:python语言重路由问题测试

    贵公司有N服务器 信息通过连接从一台服务器流向另一台服务器 如果信息从服务器流出i到服务器j then 联系 i j 某些服务器连接 i i 是可能的 这意味着信息不会进一步流动 给定一个由 N 个整数组成的数组连接 您的任务是对连接数组值
  • 如何根据当前服务器找到最合适的缓冲区大小来读取或写入Stream

    我正在编写一个服务器 它将准备好并写入巨大的文件 数据库 我在很多地方使用了 Stream 读写函数 其中我使用 8192 作为缓冲区大小 我还从 TCP 套接字读取大量输入 我不知道将部署该服务的虚拟机的配置是什么 是否有任何内置函数可以
  • Lucene 通配符查询

    我有一个关于 Lucene 的问题 我有一个表单 并从中获取文本 我想在多个字段中执行全文搜索 假设我从输入中获取文本 textToLook 我有一个带有多个过滤器的 Lucene 分析器 其中之一是 lowerCaseFilter 因此当
  • lxml.objectify 和前导零

    当 objectify 元素打印在控制台上时 前导零会丢失 但它会保留在 text gt gt gt from lxml import objectify gt gt gt gt gt gt xml a b 01 b a gt gt gt
  • 在scala中,如何使类型类适用于Aux模式? - 第2部分

    这是以下问题的后续问题 在scala中 如何使类型类适用于Aux模式 https stackoverflow com questions 65838535 in scala how to make type class working fo
  • Python - 从类主体内部引用类名

    在Python中 我想要一个类属性 一个带有初始化值的字典 我写了这段代码 class MetaDataElement MD INVALID MD CATEGORY MD TAG range 3 mapInitiator2Type Meta