Я пытаюсь реализовать в Python следующее:
NAMES = {"fn" => ["James", "John", "John"], "ln" => ["Smith", "Johnson", "Brown"]}
class RandomNameGenerator
def self.generate
new.to_s
end
def initialize
@fn = NAMES['fn'].sample
@ls = NAMES['ln'].sample
end
def to_s
@fn + " " + @ls
end
end
, который возвращает:
>> RandomNameGenerator.generate
=> "James Smith"
>> RandomNameGenerator.generate
=> "John Johnson"
Мой код до сих пор выглядит так:
import random
NAMES = {"fn": ["James", "John", "John"], "ln": ["Smith", "Johnson", "Brown"]}
class RandomNameGenerator(object):
@classmethod
def generate(cls):
RandomNameGenerator().__str__
def __init__(self):
self.fn = random.choice(NAMES["fn"])
self.ln = random.choice(NAMES["ln"])
def __str__(self):
return self.fn + " " + self.ln
>>> RandomNameGenerator.generate()
>>> print(RandomNameGenerator.generate())
None
Я чувствую, что new.to_s
Руби отличается от RandomNameGenerator().__str__
Питона.Что я не понимаю?