gpt4 book ai didi

python - 如何在类参数中调用函数

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:51 24 4
gpt4 key购买 nike

我需要一些帮助来生成一个对象的实例。

假设我有一个从 NewPerson 创建的对象,但我没有输入名称在这样的参数中:

dave = NewPerson()

我想使用我的 generate_name 函数生成一个随机名称。这是我当前的代码,但出现错误:NameError: name 'generate_name' is not defined

class NewPerson(object):
def __init__(self, name = generate_name()):
self.name = name
self.age = 0

def set_name(self,name):
self.name = name

def get_name(self):
return (self.name)

def generate_name(self):
self.name = Generator.get_full_name()

最佳答案

import randomgenerate_name 函数是因为我不知道你的Generate 类是做什么的

import random #just for a quick generate random name thing
class NewPerson(object):
def __init__(self, name = fart_knock()):
#this entire if/else block is equivilant to "self.name = name or self.generate_name()", thanks troolee
if name == None:
self.name = self.generate_name()
else:
self.name = name
self.age = 0

def generate_name(self):
#because i have no idea how your Generator class works
return str(random.randrange(9999))

你的工作不正常,因为你试图将类内部的函数分配给 init 方法。在您创建它之前,它不知道它是什么。 (即使这样做,它也会这样做一次,并且每个随机名称都将完全相同)

同样,当在类内部调用方法时,您需要在类内部将其引用为 self.generate_name() 而不仅仅是 generate_name()

关于python - 如何在类参数中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com