首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止代码在所有代码中重复

如何防止代码在所有代码中重复
EN

Stack Overflow用户
提问于 2022-08-12 00:48:00
回答 1查看 55关注 0票数 -1

我是新来的,还在学习,但我正在做一个随机字符生成器,我不知道如何使它停止或结束代码,并启动一个新的。

代码语言:javascript
复制
import random 
Rac = ["Human", "Half-Human", "Not Human"]
Race = random.choice(Rac)
Age = random.randint(1,100)
skil = [“Beserker”,”Mage”,”Assassin”]
Skill = random.choice(skil)
Gende = [“Male”,”Female”]
Gender = random.choice(Gende)

class human:
    def __dir__(self):
        return[Race,Age,Skill,Gender]

person = human()
print(dir(person))

print(“Race: {}, Age: {}, Class: {}, Gender: {}”.format(Race,Age,Class,Gender))

我有两个这样的,但年龄不断打印出相同的,我不知道如何分开他们,所以这是一个不同的年龄,而不是相同的数字,两者。

我需要结束发电机的年龄,因为它干扰并使它成为所有的年龄,而不是随机的年龄。抱歉弄糊涂了。

EN

回答 1

Stack Overflow用户

发布于 2022-08-12 01:30:27

根据我的理解,

首先,我已经更正了代码并删除了语法错误。

(下面给出的代码是而不是一个答案。这只是更新的代码。我已经在下面给出了我的答案。

代码语言:javascript
复制
import random 
Rac = ["Human", "Half-Human", "Not Human"]
Race = random.choice(Rac)
Age = random.randint(1,100)
skil = ["Beserker", "Mage", "Assassin"]
Skill = random.choice(skil)
Gende = ["Male", "Female"]
Gender = random.choice(Gende)

class human:
    def __dir__(self):
        return [Race, Age, Skill, Gender]

person = human()
print(dir(person))

print("Race: {}, Age: {}, Skill: {}, Gender: {}".format(Race, Age, Skill, Gender))

我的答案是:

现在,

当您创建随机对象时,这里:Age = random.randint(1,100)只被调用一次,所以只生成一个随机数,并且使用它2次。

,我有两个这样的,但年龄一直打印出相同的,我不知道如何分开他们,我如何分开他们,所以这是一个不同的年龄,而不是相同的数字,两者

您需要的是在类定义中生成这个数字。因此,每次创建该类的对象时都会调用它。

代码:

代码语言:javascript
复制
import random
class human:
    def __dir__(self) -> list:
        self.Rac = ["Human", "Half-Human", "Not Human"]
        self.Race = random.choice(self.Rac)
        self.Age = random.randint(1,100)
        self.skil = ["Beserker", "Mage", "Assassin"]
        self.Skill = random.choice(self.skil)
        self.Gende = ["Male", "Female"]
        self.Gender = random.choice(self.Gende)
        return [self.Race, str(self.Age), self.Skill, self.Gender]

person = human()
print(dir(person))

self.Age**)** (注意的str()转换)

现在还有一些其他的知识:

dir()方法在类中调用__dir__方法,__dir__应该返回包含类似数据类型(int或str)项的列表。

这意味着list应该包含所有整数或所有字符串。例如,代码:

代码语言:javascript
复制
class Hello():
    def __dir__(self):
        return ["1", "2", "3"]

print(dir(Hello()))

输出:['1', '2', '3']

如果:

代码语言:javascript
复制
class Hello():
    def __dir__(self):
        return [1, "2", 3]

print(dir(Hello()))

输出:TypeError: '<' not supported between instances of 'str' and 'int'

有关更多信息:What's the difference between dir() and __dir__?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73328216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档