1
Ruby代碼:如何最好地在Python實現這個Ruby代碼
module ToFile
def filename
"object_#{self.object_id}.txt"
end
def to_f
File.open(filename, 'w') { |f| f.write(to_s) }
end
end
class Person
include ToFile
attr_accessor :name
def initialize(name)
@name = name
end
def to_s
name
end
end
我的Python代碼
class ToFile:
def __init__(self):
self.filename = "object_#{0}.txt".format(id(self))
def to_f(self):
with open(self.filename, 'w') as f:
f.write(self.to_s())
class Person(ToFile):
def __init__(self, name):
super().__init__()
self.name = name
def to_s(self):
return self.name
我從來沒有用過混入或多重繼承之前,蟒蛇,所以這只是什麼我放在一起,所以我只想知道這是Pythonic做我想做的方式還是有一個更清潔的方式來寫這個。
我不能評論Python代碼,但Ruby代碼很糟糕。 'to_f'應該返回一個'Float',而不是'File',它*當然*不應該有任何副作用!此外,「自我」是多餘的。 –
我從一本書中得到了Ruby代碼,它只是示例代碼顯示了mixins,但並不意味着我認爲有意義。 – Riina