पाइथन में इस रूबी कोड को सर्वोत्तम तरीके से कैसे कार्यान्वित करें - पायथन, रूबी, एकाधिक-विरासत, मिश्रण

रूबी कोड:

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

मेरा पायथन कोड

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

मैंने कभी भी मिक्सिन्स या मल्टीपल इनहेरिटेंस का इस्तेमाल नहीं कियाअजगर से पहले, तो यह वही है जो मैंने एक साथ रखा है इसलिए मैं सिर्फ यह जानना चाहता हूं कि यह वही है जो मैं करना चाहता हूं या यह लिखने का एक क्लीनर तरीका है।

उत्तर:

जवाब के लिए 0 № 1

आपको कम से कम जादू का उपयोग करना पसंद करना चाहिए __str__ रूबी के नामकरण परंपराओं का पालन करने के बजाय विधि। स्ट्रिंग इंटरपोलेशन का उपयोग करना format रूबी के लिए पूरी तरह से अलग काम करता है, लेकिन इस मामले में हटाने # समकक्ष कार्य करेगा

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(str(self))

class Person(ToFile):
def __init__(self, name):
super().__init__()
self.name = name

def __str__(self):
return self.name

to_f शायद इसका भी नाम बदल दिया जाए write_to_file या कुछ और।

मैं भी एक होने से बचना चाहिए __init__ मिश्रण वर्गों पर विधि।


संबंधित सवाल
सबसे लोकप्रिय