我试图编写一个单元测试,它断言嵌套的自定义异常是由函数引发的。
下面的示例代码通过:
from unittest import TestCase
class MyClass():
class MyException(Exception):
pass
def fail():
raise MyClass.MyException()
class MyTests(TestCase):
def test_throwsException(self):
with self.assertRaises(MyClass.MyException):
我有下面的Python类。
from enum import Enum
class Color(Enum):
red = 1
blue = 2
green = 3
但是当我试图创建一个对象时
color = Color()
它会抛出一个错误提示
TypeError: __call__() takes at least 2 arguments (1 given)
另一个预期的论点是什么。
在Python3.4中,我们在标准库中获得了一个Enum库:enum。我们可以得到一个支持Python2.4到2.7 (甚至3.1到3.3)的enum的后端口,用表示。
但是我们已经设法在没有这个新模块的情况下度过了相当长的一段时间-那么为什么我们现在有它呢?
我对来自其他语言的枚举的用途有一个大致的了解。在Python中,通常使用裸类,如下所示,并将其称为枚举:
class Colors:
blue = 1
green = 2
red = 3
这可以在API中用来创建值的规范表示,例如:
function_of_color(Colors.green)
如果这有任何批评
有没有办法在蟒蛇身上做这样的事?
from enum import Enum, auto
def some_func(mode = Mode.A):
class Mode(Enum):
A = auto()
print(mode == Mode.A)
期望结果
>>> some_func()
True
上面的片段在NameError: name 'Mode' is not defined中失败,大概是因为当解释器读取def some_func(mode = Mode.A):时没有定义class Mode
当然,你可以把E
如何在Python3枚举类中定义不是枚举值的属性?
class Color(Enum):
red = 0
blue = 1
violet = 2
foo = 'this is a regular attribute'
bar = 55 # this is also a regular attribute
但这对我来说似乎是失败的。似乎Color试图将foo和bar作为其枚举值的一部分。
编辑:以免您认为我没有以一种预期的方式使用Enum ...例如,以官方Python文档的示例枚举类Planet (docs.python.org/3/l
我有个心肠。
from enum import Enum
class AuthMixin(Enum):
if 'Production' in utils.whichBranch():
#PRODUCTION
mongoport = os.environ.get("MONGO_PORT")
......
我正试着用另一个剧本来称呼它。
我正在尝试将一些代码从python 2转换为python 3,并且在这段代码中遇到了问题:
from enum import Enum, EnumMeta
class KeyCode(Enum):
A = 1
B = 2
C = 3
class KeyMeta(EnumMeta):
def __new__(mcs, name, bases, dct):
dct.update({e.name: e.value for e in KeyCode})
return super(KeyMeta, mcs).__new__(mcs,
我有这个python代码,我想要转换成Javascript/Typescript
import enum
class Shape(enum.Enum):
RECTANGLE = 0
CIRCLE = 1
TRIANGLE = 2
OTHER = 3
print(isinstance(data, Shape))
在打字稿中,我可以使用枚举,但这不是我要找的。我需要这样做的能力:
const data = new Shape().RECTANGLE;
console.log(data instanceof Shape); // should return tru
我在一些Python项目中使用了一个小类来模拟枚举。有没有更好的方法,或者这在某些情况下最有意义?
类代码如下:
class Enum(object):
'''Simple Enum Class
Example Usage:
>>> codes = Enum('FOO BAR BAZ') # codes.BAZ will be 2 and so on ...'''
def __init__(self, names):
for number, name in enumerate(names.split())
我在从python脚本中的对象访问字段时遇到了问题。基本上,它可以归结为下面这段代码:
from enum import Enum
class AbstractFoo:
def __init__(self, foo='works', bar='nope'):
self.foo = foo
self.bar = bar
class Foo(Enum):
test = AbstractFoo('bla', 'tada')
因此,在python控制台中,我尝试使用以下方法访问枚举的一个
我有一个名为GeoLocation的类,它的字段(点和区域)是相互排斥的。如何定义类?
Python3代码:
from enum import Enum
from typing import Optional
from pydantic import BaseModel
class Point(BaseModel):
latitude: float
longitude: float
class Ellipse(BaseModel):
center: Point
semiMajorAxis: Optional[float] = None
# point an
下面是我的Ubuntu笔记本上的Python2.7.6:
(myenv)$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import enum
>>> class Fruit(enum.Enum):
... apple=1
...
复制:
在python中进行枚举的公认方法是什么?
例如,目前我正在编写一个游戏,希望能够移动“向上”、“向下”、“左”和“右”。我使用字符串是因为我还没有弄清楚枚举在python中是如何工作的,所以我的逻辑中到处都是这样的东西:
def move(self, direction):
if direction == "up":
# Do something
我想用类似于"up"的东西来代替Directions.up
我尝试运行一个非常简单的OpenGL示例:
import sys
from OpenGL import GL as gl
from PyQt6.QtOpenGLWidgets import QOpenGLWidget
from PyQt6.QtWidgets import QApplication
class Widget(QOpenGLWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("PyQt6, OpenGL 3.3")
s
在Django中创建模型时,我需要使两个整数字段的组合具有唯一性:
class example(models.Model):
lenght = models.PositiveSmallIntegerField
position = models.PositiveSmallIntegerField
otherfield = models.ForeignKey('onetable')
otherfield2 = models.ForeignKey('anothertable')
class Meta:
uni
我有一个关于在java类中编写多个枚举的问题。我们可以要这样的吗?
你能帮我完成这个吗?
对于Ex:
public final class Test{
public enum Unit{
HORIZONTAL("HORIZONTAL");
}
public enum Code {
COMPANY ("COMPANY");
}
public enum Version{
ONE(1)
}
}