1
0
Эх сурвалжийг харах

Added better string formatting as required by Issue#138

S. Mahmudul Hasan 2 жил өмнө
parent
commit
0fef360caf
1 өөрчлөгдсөн 10 нэмэгдсэн , 3 устгасан
  1. 10 3
      python/builtins.py

+ 10 - 3
python/builtins.py

@@ -96,13 +96,20 @@ def sorted(iterable, reverse=False, key=None):
     return a
 
 ##### str #####
-def __f(self, *args):
+def __f(self, *args, **kwargs):
     if '{}' in self:
         for i in range(len(args)):
             self = self.replace('{}', str(args[i]), 1)
     else:
-        for i in range(len(args)):
-            self = self.replace('{'+str(i)+'}', str(args[i]))
+        # Positional arguments will be followed by keyword arguments
+        # 1. Replace the positional arguments
+        for i,a in enumerate(args):
+            self = self.replace('{'+str(i)+'}', str(a))
+        
+        # 2. Replace the keyword arguments
+        for k,v in kwargs.items():
+            self = self.replace('{'+k+'}', str(v))
+    
     return self
 str.format = __f