more

    
      
diff --git a/pythonetc/README.md b/pythonetc/README.md
index 4009294..90caa28 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -64,6 +64,8 @@ More:
 1. ./class-getitem.md           (12 November 2020, 18:00)
 1. ./ipaddress.md               (17 November 2020, 18:00)
 1. ./index.md                   (19 November 2020, 18:00)
+1. ./qualname.md                (24 November 2020, 18:00)
+1. ./digits.md                  (26 November 2020, 18:00)
 
 Out of order:
 
diff --git a/pythonetc/digits.md b/pythonetc/digits.md
new file mode 100644
index 0000000..9a209a0
--- /dev/null
+++ b/pythonetc/digits.md
@@ -0,0 +1,54 @@
+We used to use Arabic digits to record numbers. However, there are many more numeral systems: Chinese (and Suzhou), Chakma, Persian, Hebrew, and so on. And Python supports them when detecting numbers:
+
+```python
+int('٤٢')
+# 42
+
+'٤٢'.isdigit()
+# True
+
+import re
+re.compile('\d+').match('٤٢')
+# 
+```
+
+If you want to match only Arabic numerals, make an explicit check for it:
+
+```python
+n = '٤٢'
+n.isdigit() and n.isascii()
+# False
+
+re.compile('[0-9]+').match(n)
+# None
+```
+
+Let's make the full list of supported numerals:
+
+```python
+from collections import defaultdict
+nums = defaultdict(str)
+for i in range(0x110000):
+    try:
+        int(chr(i))
+    except:
+        pass
+    else:
+        nums[int(chr(i))] += chr(i)
+dict(nums)
+```
+
+```python
+{
+ 0: '0٠۰߀०০੦૦୦௦౦೦൦෦๐໐༠၀႐០᠐᥆᧐᪀᪐᭐᮰᱀᱐꘠꣐꤀꧐꧰꩐꯰0𐒠𐴰𑁦𑃰𑄶𑇐𑋰𑑐𑓐𑙐𑛀𑜰𑣠𑱐𑵐𑶠𖩠𖭐𝟎𝟘𝟢𝟬𝟶𞥐',
+ 1: '1١۱߁१১੧૧୧௧౧೧൧෧๑໑༡၁႑១᠑᥇᧑᪁᪑᭑᮱᱁᱑꘡꣑꤁꧑꧱꩑꯱1𐒡𐴱𑁧𑃱𑄷𑇑𑋱𑑑𑓑𑙑𑛁𑜱𑣡𑱑𑵑𑶡𖩡𖭑𝟏𝟙𝟣𝟭𝟷𞥑',
+ 2: '2٢۲߂२২੨૨୨௨౨೨൨෨๒໒༢၂႒២᠒᥈᧒᪂᪒᭒᮲᱂᱒꘢꣒꤂꧒꧲꩒꯲2𐒢𐴲𑁨𑃲𑄸𑇒𑋲𑑒𑓒𑙒𑛂𑜲𑣢𑱒𑵒𑶢𖩢𖭒𝟐𝟚𝟤𝟮𝟸𞥒',
+ 3: '3٣۳߃३৩੩૩୩௩౩೩൩෩๓໓༣၃႓៣᠓᥉᧓᪃᪓᭓᮳᱃᱓꘣꣓꤃꧓꧳꩓꯳3𐒣𐴳𑁩𑃳𑄹𑇓𑋳𑑓𑓓𑙓𑛃𑜳𑣣𑱓𑵓𑶣𖩣𖭓𝟑𝟛𝟥𝟯𝟹𞥓',
+ 4: '4٤۴߄४৪੪૪୪௪౪೪൪෪๔໔༤၄႔៤᠔᥊᧔᪄᪔᭔᮴᱄᱔꘤꣔꤄꧔꧴꩔꯴4𐒤𐴴𑁪𑃴𑄺𑇔𑋴𑑔𑓔𑙔𑛄𑜴𑣤𑱔𑵔𑶤𖩤𖭔𝟒𝟜𝟦𝟰𝟺𞥔',
+ 5: '5٥۵߅५৫੫૫୫௫౫೫൫෫๕໕༥၅႕៥᠕᥋᧕᪅᪕᭕᮵᱅᱕꘥꣕꤅꧕꧵꩕꯵5𐒥𐴵𑁫𑃵𑄻𑇕𑋵𑑕𑓕𑙕𑛅𑜵𑣥𑱕𑵕𑶥𖩥𖭕𝟓𝟝𝟧𝟱𝟻𞥕',
+ 6: '6٦۶߆६৬੬૬୬௬౬೬൬෬๖໖༦၆႖៦᠖᥌᧖᪆᪖᭖᮶᱆᱖꘦꣖꤆꧖꧶꩖꯶6𐒦𐴶𑁬𑃶𑄼𑇖𑋶𑑖𑓖𑙖𑛆𑜶𑣦𑱖𑵖𑶦𖩦𖭖𝟔𝟞𝟨𝟲𝟼𞥖',
+ 7: '7٧۷߇७৭੭૭୭௭౭೭൭෭๗໗༧၇႗៧᠗᥍᧗᪇᪗᭗᮷᱇᱗꘧꣗꤇꧗꧷꩗꯷7𐒧𐴷𑁭𑃷𑄽𑇗𑋷𑑗𑓗𑙗𑛇𑜷𑣧𑱗𑵗𑶧𖩧𖭗𝟕𝟟𝟩𝟳𝟽𞥗',
+ 8: '8٨۸߈८৮੮૮୮௮౮೮൮෮๘໘༨၈႘៨᠘᥎᧘᪈᪘᭘᮸᱈᱘꘨꣘꤈꧘꧸꩘꯸8𐒨𐴸𑁮𑃸𑄾𑇘𑋸𑑘𑓘𑙘𑛈𑜸𑣨𑱘𑵘𑶨𖩨𖭘𝟖𝟠𝟪𝟴𝟾𞥘',
+ 9: '9٩۹߉९৯੯૯୯௯౯೯൯෯๙໙༩၉႙៩᠙᥏᧙᪉᪙᭙᮹᱉᱙꘩꣙꤉꧙꧹꩙꯹9𐒩𐴹𑁯𑃹𑄿𑇙𑋹𑑙𑓙𑙙𑛉𑜹𑣩𑱙𑵙𑶩𖩩𖭙𝟗𝟡𝟫𝟵𝟿𞥙',
+}
+```
diff --git a/pythonetc/qualname.md b/pythonetc/qualname.md
new file mode 100644
index 0000000..f73c4ee
--- /dev/null
+++ b/pythonetc/qualname.md
@@ -0,0 +1,23 @@
+In Python 3.3, [PEP-3155](https://www.python.org/dev/peps/pep-3155/) introduced a new `__qualname__` attribute for classes and functions which contains a full dotted path to the definition of the given object.
+
+```python
+class A:
+  class B:
+    def f(self):
+      def g():
+        pass
+      return g
+
+A.B.f.__name__
+# 'f'
+
+A.B.f.__qualname__
+# 'A.B.f'
+
+g = A.B().f()
+g.__name__
+# 'g'
+
+g.__qualname__
+# 'A.B.f..g'
+```