Python 3 - 如何使用循环一次创建多个类?

扫描

我正在尝试制作一个 D&D 角色创建者,尽管我需要为其中的每个“类”和“种族”制作一个类的单独实例。

我已经做到了,每个实例都在单独的行上创建,一个接一个(所以现在大约有 45 行,包括注释),但是,我想知道我是否可以创建一个循环来创建所有实例几行代码。

我已经查看了其他回复,尽管他们都没有完全按照我的意愿工作,所以我希望有人可以在这里帮助我。

现在的代码如下所示:

## Classes ##

 #creates barbarian as a class
Barbarian = DnD_Class("Barbarian")
 #creates bard as a class
Bard = DnD_Class("Bard")
 #creates cleric as a class
Cleric = DnD_Class("Cleric")
 #creates druid as a class
Druid = DnD_Class("Druid")
 #creates fighter as a class
Fighter = DnD_Class("Fighter")
 #creates monk as a class
Monk = DnD_Class("Monk")
 #creates paladin as a class
Paladin = DnD_Class("Paladin")
 #creates ranger as a class
Ranger = DnD_Class("Ranger")
 #creates rogue as a class
Rogue = DnD_Class("Rogue")
 #creates sorcerer as a class
Sorcerer = DnD_Class("Sorcerer")
 #creates warlock as a class
Warlock = DnD_Class("Warlock")
 #creates wizard as a class
Wizard = DnD_Class("Wizard")

## Races ##

 #creates dragonborn as a race
Dragonborn = DnD_Race("Dragonborn")
 #creates dwarf as a race
Dwarf = DnD_Race("Dwarf")
 #creates elf as a race
Elf = DnD_Race("Elf")
 #creates gnome as a race
Gnome = DnD_Race("Gnome")
 #creates half-elf as a race
Half_Elf = DnD_Race("Half-Elf")
 #creates halfling as a race
Halfling = DnD_Race("Halfling")
 #creates half-orc as a race
Half_Orc = DnD_Race("Half-Orc")
 #creates human as a race
Human = DnD_Race("Human")
 #creates tiefling as a race
Tiefling = DnD_Race("Tiefling")
山姆怀斯

我建议在以类名为键的字典中收集您的类,而不是为每个类命名变量:

dnd_classes = {
    class_name: DnD_Class(class_name)
    for class_name in (
        "Barbarian",
        "Bard",
        "Cleric",
        "Druid",
        "Fighter",
        "Monk",
        "Paladin",
        "Ranger",
        "Rogue",
        "Sorcerer",
        "Warlock",
        "Wizard",
    )
}

这使您可以通过名称轻松查找类,因此您可以执行以下操作:

try:
    char_class = dnd_classes[input("Pick a class: ")]
except KeyError:
    print("Class must be one of:", ", ".join(dnd_classes))

代替:

user_class = input("Pick a class" )
if user_class == "Barbarian":
    char_class = Barbarian
elif user_class == "Bard":
    # ugggggh

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

for循环在Python 3中运行一次

Python3-for循环仅返回一次迭代

如何使用鼻子测试测试一次循环(一次)(Python 2.7)

如何同时或一次使用多个替换,Python

使用循环创建多个唯一类 (Python)

如何在python中使用循环创建多个类对象?

如何在Python中使用执行循环3次?

让Python保持循环语句运行并每3秒检查一次条件

在python for循环中一次运行3个变量。

Python3一次解析youtube上的30多个视频

如何在Python中一次运行多个while循环

如何使用while循环创建python程序,3的倍数

如何一次在python中为Windows创建多个文件夹

如何一次使用imgURL从Amazon S3检索多个图像?

如何在Python中每3小时更新一次URL

如何在Python 3中一次遍历两个列表?

如何使用Amazon S3创建一次性下载链接?

使用 Pandas Python3 检查 CSV 的最后一次时间是否为当前时间

Python:如何一次從數據框中迭代 3 個行值?然後再一次下 3 個值?

如何在python中仅运行一次循环?

我只能调用一次定义:Python 3

Python:For 循环仅迭代一次 - 也使用 with 语句

如何使用pip一次安装多个python软件包

如何在Python上使用Webbot浏览器一次按下多个键

python Docker Image:如何一次执行多个脚本?

Python,Redis:如何一次设置多个键值对

如何一次以特定顺序运行多个python文件

如何让python一次识别多个字母

如何在java中创建一个类似于python字典的字典并一次输入多个值?