相关疑难解决方法(0)

移植C定义了Pythonic方式

tl; dr什么是Pythonic(Py 3)指定大量定义的位掩码和常量的方法?使用枚举或只是将一组consts作为类变量?和优点/缺点?

背景

我正在将C代码移植到Python 3.在C代码中有大量定义用作位掩码:

#define ERR_1 = 0x8
#define ERR_2 = 0x2
#define ERR_4 = 0x100
...
Run Code Online (Sandbox Code Playgroud)

我认为在Python中使用Pythonic的方法是使用a Enum,我遇到了IntEnum这意味着我不必.value像往常一样在任何地方使用它Enum:

from enum import IntEnum

class Errors(IntEnum):
    BROKEN = 0x8
    FUBARED = 0x4
    GIVEUP = 0x7

print(0xFF & Errors.BROKEN)
Run Code Online (Sandbox Code Playgroud)

但是,print(0xFF & ERR_1)如果我将它们全部作为有力的话,它仍然比我能得到的更加冗长.

python enums constants

6
推荐指数
1
解决办法
94
查看次数

游戏中的牌组排名

我是初学者Java学生.所以任何帮助将不胜感激!

我设计了一个类卡和类甲板,我将在我创建的游戏中使用它.到目前为止,我的游戏似乎运行得很好,但我遇到的问题在于我的卡类.我想利用我的getRank()方法来积累玩家所拥有的牌的积分(不论其合适).

例如,如果他们画了2个钻石,那么它将值2分,3分3分......等等.我已经创建了一个String[]调用ranks来尝试这样做,我认为这就是它的作用.但是,我希望所有面部卡片(如国王,女王......)的值都为10.但并非所有这些卡片都位于我的阵列中的索引10处.我可以就如何调整此问题提供一些指导吗?

先感谢您.

int rank;
int suit;
String[]ranks = { " "," ", " " } //all 13 ranks from Ace to King 
String[]suits = { " ", " ", " "} //all ranks

public Card(int rank, int suit){
   this.rank = rank;
   this.suit = suit; 
}

public void setRank(int rank){
   this.rank = rank;
}

public int getRank(){
   return rank;
}

//more code for suits

public String toString(){
   return ranks[rank]+" of "+suits[suit];
}
Run Code Online (Sandbox Code Playgroud)

java class

4
推荐指数
1
解决办法
1819
查看次数

4
推荐指数
1
解决办法
200
查看次数

类型安全和值安全之间的区别

我一直在阅读《Head First 面向对象的分析与设计》书,并且正在尝试学习 oop。

\n

在本书的一页中,我读到了以下几行:

\n
\n

我们\xe2\x80\x99已经使应用程序变得不那么脆弱了。它\xe2\x80\x99现在不会那么容易被破坏,因为我们\xe2\x80\x99已经用这些枚举添加了类型安全和值安全。

\n
\n

并且:

\n
\n

因此,您可以\xe2\x80\x99 拼写或错误键入枚举而不会出现编译器错误。它\xe2\x80\x99 是一种不仅获得类型安全,而且获得价值安全的好方法;您可以避免获得任何具有标准范围或合法值集的不良数据。

\n
\n

我读过这个答案,但我很困惑,因为我认为答案是我们可以假设为价值安全的东西。

\n

现在我的问题是类型安全和值安全之间有什么区别?\nEnum 如何为我们带来类型安全值安全?请给我一些有关枚举中类型安全场景和值安全场景的示例。

\n

谢谢。\n抱歉我的英语不好。

\n

java enums types type-safety

4
推荐指数
1
解决办法
86
查看次数

我会用什么Enum?

我已经声明了一个枚举类型,为它分配了一个变量,现在我将它写入控制台.那么枚举类型在现实世界的应用程序中有什么用?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
   class Enum
{
    enum cars
    {
        Toyota, Nissan, Ferrari, Lamborghini
    }
}
class Program
{
    enum cars
    {
        Toyota, Nissan, Ferrari, Lamborghini
    }
    static void Main(string[] args)
    {
        int a = (int)cars.Ferrari;
        Console.WriteLine(a);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

c# enums

3
推荐指数
1
解决办法
1057
查看次数

java中什么时候使用Enum类?

这可能是非常明显的问题,但是如果您知道值列表会不断增加,那么使用 Enum 类好吗?

假设您首先定义一个事件枚举,它仅包含 [Poo, Too],然后我们知道我们总是有一些新的要求,它变成 [Poo, Too, App, Laa] 并且不断变化,

那么在这种情况下最好的方法是什么?

java enums spring spring-boot

3
推荐指数
1
解决办法
174
查看次数

Java:如何创建仅允许3个不同值的变量

如何创建一个只允许3个不同值的变量?例如,变量color只能取3个值中的任何一个而不能取{RED, BLACK, ORANGE}其他值.

显然,我知道我可以定义String color,但是有更好的方法吗?

java

0
推荐指数
1
解决办法
88
查看次数

在类构造函数中进行两个选择

abstract class TV extends Electronics{
    private double diagonal;
    private String signal;
    private int channel;

    public TV() {}

    public TV(LocalDate productionDate, String name, int counterOnOff, boolean isOn, double diagonal, String signal, int channel) {
        super(productionDate, name, counterOnOff, isOn);
        this.diagonal= diagonal;
        this.signal= ????;
        this.channel= channel;
    }
}
Run Code Online (Sandbox Code Playgroud)

????我需要在哪里插入两个值(不完全是在那里,创建对象时我只需要从两个选项中选择)即可。我不知道如何在构造函数中实现两个选项。

我试图制作private String signal一个数组,但是它(要求)要求两个数组值,我需要从两个选项中进行选择。该课程还将有设置者和获取者。

java constructor options

0
推荐指数
1
解决办法
51
查看次数

如何使字符串变量在java中只有很少的预定义值

我想创建一个定义字符串变量的类,它只能有很少的预定义值.

public class Constraint{                 
     String const; // I want this constraint value to be fixed to either of {greaterthan,lesserthan,greaterthanequalto or lesserthanequalto}
     public Constraint(String const){
               this.const = const;
      }
}
Run Code Online (Sandbox Code Playgroud)

如果发送任何其他值,程序应该抛出错误.我想在这里使用enum这样的东西,但我想为Strings这样做.

java string enums

-1
推荐指数
1
解决办法
367
查看次数