需要返回类的Python函数,不返回任何类

需要返回类的Python函数,不返回任何类,python,Python,伙计们,我上这门课。它是一个静态职业的宝藏生成器,返回法术职业、武器职业、法力值或药水值。 问题是,当我返回它返回的值无,但如果我将其替换为打印,而不是返回,那么in会像在str函数中一样毫无问题地打印它。如何返回类型,使其不显示任何内容 from random import randint from weapon_class import Weapon from spell_class import Spell class Treasure: @staticmethod

伙计们,我上这门课。它是一个静态职业的
宝藏
生成器,返回
法术
职业、
武器
职业、法力值或药水值。 问题是,当我
返回
它返回的值
,但如果我将其替换为
打印
,而不是
返回
,那么in会像在
str
函数中一样毫无问题地打印它。如何返回类型,使其不显示任何内容

from random import randint
from weapon_class import Weapon
from spell_class import Spell


class Treasure:

    @staticmethod
    def generate_random_index(limit):
        rand_index = randint(0, int(limit))
        return rand_index

    @staticmethod
    def return_generated_treasure(max_mana, max_health):
        # generate num from 0-3
        rand_gen_num = Treasure.generate_random_index(3)
        options = {
            0: Treasure.generate_spell,
            1: Treasure.generate_weapon,
            2: Treasure.generate_mana_pot,
            3: Treasure.generate_health_pot
        }
        # give arguments for mana and health potion functions only (for now)
        if rand_gen_num == 2:
            options[rand_gen_num](max_mana)
        elif rand_gen_num == 3:
            options[rand_gen_num](max_health)
        else:
            # call other functions, which doesn't need arguments,
            # like generate spell and weapon
            options[rand_gen_num]()

    @staticmethod
    def generate_spell():
        with open('spell_names.txt', 'r') as f:
            database_spell_names = f.read().replace('\n', '').split(',')

        lst_len = len(database_spell_names) - 1
        # generate number in range 0 - <spell names length>
        rand_gen_num = Treasure.generate_random_index(lst_len)

        spell_name = database_spell_names[rand_gen_num]
        spell_mana_cost = randint(5, 35)
        spell_damage = randint(5, 40)
        cast_range = randint(1, 3)
        # return spell
        return Spell(spell_name, spell_damage, spell_mana_cost, cast_range)

    @staticmethod
    def generate_weapon():
        with open('weapon_names.txt', 'r') as f:
            database_weapon_names = f.read().replace('\n', '').split(',')
        lst_len = len(database_weapon_names) - 1
        rand_gen_num = Treasure.generate_random_index(lst_len)

        weapon_name = database_weapon_names[rand_gen_num]
        weapon_damage = randint(5, 40)
        # return weapon
        return Weapon(weapon_name, weapon_damage)

    @staticmethod
    def generate_mana_pot(max_mana):
        max_possible_mana_limit = max_mana * 1/2
        mana_portion = randint(0, int(max_possible_mana_limit))
        return mana_portion

    @staticmethod
    def generate_health_pot(max_health):
        max_possible_health_limit = max_health * 1/3
        health_portion = randint(0, int(max_possible_health_limit))
        return health_portion

def main():
    award = Treasure.return_generated_treasure(100, 100)
    print (award)

if __name__ == '__main__':
    main()
来自随机导入randint
从武器类进口武器
从咒语类导入咒语
班级珍藏:
@静力学方法
def生成随机索引(限制):
rand_index=randint(0,int(极限))
返回随机指数
@静力学方法
def返回\u生成的\u宝藏(最大法力、最大生命值):
#从0-3生成num
rand\u gen\u num=宝藏。生成随机索引(3)
选项={
0:宝藏。生成_咒语,
1:宝藏,生成武器,
2:宝藏。生成法力罐,
3:宝藏。生成\健康\罐
}
#仅提供法力和健康药水功能的参数(目前)
如果rand_gen_num==2:
选项[rand\u gen\u num](最大法力)
elif rand_gen_num==3:
选项[rand_gen_num](最大运行状况)
其他:
#调用其他不需要参数的函数,
#比如产生法术和武器
选项[rand\u gen\u num]()
@静力学方法
def生成_拼写():
以open('spell_names.txt','r')作为f:
数据库\u拼写\u名称=f.read().replace('\n','').split(','))
lst_len=len(数据库拼写名称)-1
#生成范围为0的数字-
rand\u gen\u num=宝藏。生成随机索引(lst\u len)
拼写名称=数据库拼写名称[rand\u gen\u num]
法术法力消耗=randint(5,35)
法术伤害=randint(5,40)
施法范围=randint(1,3)
#回击咒语
返回法术(法术名称、法术伤害、法术法力消耗、施法范围)
@静力学方法
def生成_武器():
以open('wearm_names.txt','r')作为f:
数据库名称=f.read().replace('\n','').split(','))
lst_len=len(数据库武器名称)-1
rand\u gen\u num=宝藏。生成随机索引(lst\u len)
武器名称=数据库武器名称[rand\u gen\u num]
武器伤害=randint(5,40)
#还击武器
返回武器(武器名称,武器伤害)
@静力学方法
def生成法力值(最大法力值):
最大可能法力限制=最大法力*1/2
法力部分=randint(0,int(最大可能法力限制))
返回法力值部分
@静力学方法
def生成运行状况(最大运行状况):
最大可能健康极限=最大健康*1/3
健康部分=randint(0,int(最大可能健康极限))
返回健康部分
def main():
奖励=宝藏。返回生成的宝藏(100100)
印刷品(奖项)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()

返回\u生成的\u宝藏
不返回任何东西-那里没有
返回
关键字。

您需要将其他函数的输出设置为全局。当它们在函数中返回时,它们的返回将成为本地的,然后不会通过类传播或进一步返回

它通过其他函数链接,它们返回一个结果?它调用其他函数,然后丢弃(ir)返回值。哦,是的,选项前面的一个返回起了作用。谢谢大家!@恩科尔恰科夫:如果这个答案对你有帮助的话,请接受它:)拥有一个只有静态方法的类有什么意义?难道你不能用一堆函数来编写一个模块吗?我是Python新手,但仍然不知道模块是什么。还想练习静态类和函数。为了简单起见,模块是一个.py文件。如果由于语义原因需要将某些函数和/或类组合在一起,则应将它们写入单独的模块(.py文件),然后导入。