@ -302,12 +302,33 @@ Point(x=<span class="hljs-number">1</span>, y=<span class="hljs-number">2</span>
(< span class = "hljs-number" > 10< / span > , < span class = "hljs-number" > 12< / span > , < span class = "hljs-number" > 14< / span > )
< / code > < / pre >
< h2 id = "type" > < a href = "#type" name = "type" > #< / a > Type< / h2 >
< pre > < code class = "python language-python hljs" > < type> = type(< el> ) < span class = "hljs-comment" > # < class 'int'> / < class 'str'> / ...< / span >
< ul >
< li > < strong > Everything is an object.< / strong > < / li >
< li > < strong > Every object has a type.< / strong > < / li >
< li > < strong > Type and class are synonymous.< / strong > < / li >
< / ul >
< pre > < code class = "python language-python hljs" > < type> = type(< el> ) < span class = "hljs-comment" > # Or: < type> = < el> .__class__< / span >
< bool> = isinstance(< el> , < type> ) < span class = "hljs-comment" > # Also true if 'type' is a superclass of el's type.< / span >
< / code > < / pre >
< pre > < code class = "python language-python hljs" > < tuple> = < type> .__bases__ < span class = "hljs-comment" > # A tuple of type's parents.< / span >
< list> = < type> .mro() < span class = "hljs-comment" > # Returns a list of all type's superclasses.< / span >
< bool> = issubclass(< sub_type> , < type> ) < span class = "hljs-comment" > # Checks if 'sub_type' is a subclass of 'type'.< / span >
< / code > < / pre >
< ul >
< li > < strong > Every class is a subclass and a superclass of itself.< / strong > < / li >
< / ul >
< pre > < code class = "python language-python hljs" > < span class = "hljs-meta" > > > > < / span > type(< span class = "hljs-string" > 'a'< / span > ), < span class = "hljs-string" > 'a'< / span > .__class__, str
(< < span class = "hljs-class" > < span class = "hljs-keyword" > class< / span > '< span class = "hljs-title" > str< / span > '> , < < span class = "hljs-title" > class< / span > '< span class = "hljs-title" > str< / span > '> , < < span class = "hljs-title" > class< / span > '< span class = "hljs-title" > str< / span > '> )
< / span > < / code > < / pre >
< h4 id = "sometypesdonothavebuiltinnamessotheymustbeimported" > Some types do not have builtin names, so they must be imported:< / h4 >
< pre > < code class = "python language-python hljs" > < span class = "hljs-keyword" > from< / span > types < span class = "hljs-keyword" > import< / span > FunctionType, MethodType, LambdaType, GeneratorType
< / code > < / pre >
< h3 id = "abcs" > ABC-s< / h3 >
< pre > < code class = "python language-python hljs" > < span class = "hljs-keyword" > from< / span > numbers < span class = "hljs-keyword" > import< / span > Integral, Rational, Real, Complex, Number
< bool> = isinstance(< el> , Number)
< / code > < / pre >
< pre > < code class = "python language-python hljs" > < bool> = callable(< el> )
< pre > < code class = "python language-python hljs" > < span class = "hljs-keyword" > from< / span > collections.abc < span class = "hljs-keyword" > import< / span > Iterable, Collection, Sequence
< bool> = isinstance(< el> , Iterable)
< / code > < / pre >
< h2 id = "string" > < a href = "#string" name = "string" > #< / a > String< / h2 >
< pre > < code class = "python language-python hljs" > < str> = < str> .strip() < span class = "hljs-comment" > # Strips all whitespace characters from both ends.< / span >
@ -1244,6 +1265,28 @@ param_names = list(<sig>.parameters.keys())
< pre > < code class = "python language-python hljs" > < span class = "hljs-meta" > > > > < / span > MyClass.a, MyClass.b
(< span class = "hljs-string" > 'abcde'< / span > , < span class = "hljs-number" > 12345< / span > )
< / code > < / pre >
< h4 id = "typediagramabcisastrstrisatype" > Type diagram ('abc' is a str, str is a type, …):< / h4 >
< pre > < code class = "text language-text" > ┏━━━━━━━━━┯━━━━━━━━━━━━━┓
┃ classes │ metaclasses ┃
┠─────────┼─────────────┨
┃ MyClass → MyMetaClass ┃
┃ │ ↓ ┃
┃ object ───→ type ←╮ ┃
┃ │ ↑ ╰───╯ ┃
┃ str ───────╯ ┃
┗━━━━━━━━━┷━━━━━━━━━━━━━┛
< / code > < / pre >
< h4 id = "inheritancediagramstrinheritsfromobject" > Inheritance diagram (str inherits from object, …):< / h4 >
< pre > < code class = "text language-text" > ┏━━━━━━━━━┯━━━━━━━━━━━━━┓
┃ classes │ metaclasses ┃
┠─────────┼─────────────┨
┃ MyClass │ MyMetaClass ┃
┃ ↓ │ ↓ ┃
┃ object ←─── type ┃
┃ ↑ │ ┃
┃ str │ ┃
┗━━━━━━━━━┷━━━━━━━━━━━━━┛
< / code > < / pre >
< h2 id = "operator" > < a href = "#operator" name = "operator" > #< / a > Operator< / h2 >
< pre > < code class = "python language-python hljs" > < span class = "hljs-keyword" > from< / span > operator < span class = "hljs-keyword" > import< / span > add, sub, mul, truediv, floordiv, mod, pow, neg, abs
< span class = "hljs-keyword" > from< / span > operator < span class = "hljs-keyword" > import< / span > eq, ne, lt, le, gt, ge