Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python310/lib64/python3.10/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python310/lib64/python3.10/numbers.py
# Copyright 2007 Google, Inc. All Rights Reserved.
# Licensed to PSF under a Contributor Agreement.

"""Abstract Base Classes (ABCs) for numbers, according to PEP 3141.

TODO: Fill out more detailed documentation on the operators."""

from abc import ABCMeta, abstractmethod

__all__ = ["Number", "Complex", "Real", "Rational", "Integral"]

class Number(metaclass=ABCMeta):
    """All numbers inherit from this class.

    If you just want to check if an argument x is a number, without
    caring what kind, use isinstance(x, Number).
    """
    __slots__ = ()

    # Concrete numeric types must provide their own hash implementation
    __hash__ = None


## Notes on Decimal
## ----------------
## Decimal has all of the methods specified by the Real abc, but it should
## not be registered as a Real because decimals do not interoperate with
## binary floats (i.e.  Decimal('3.14') + 2.71828 is undefined).  But,
## abstract reals are expected to interoperate (i.e. R1 + R2 should be
## expected to work if R1 and R2 are both Reals).

class Complex(Number):
    """Complex defines the operations that work on the builtin complex type.

    In short, those are: a conversion to complex, .real, .imag, +, -,
    *, /, **, abs(), .conjugate, ==, and !=.

    If it is given heterogeneous arguments, and doesn't have special
    knowledge about them, it should fall back to the builtin complex
    type as described below.
    """

    __slots__ = ()

    @abstractmethod
    def __complex__(self):
        """Return a builtin complex instance. Called for complex(self)."""

    def __bool__(self):
        """True if self != 0. Called for bool(self)."""
        return self != 0

    @property
    @abstractmethod
    def real(self):
        """Retrieve the real component of this number.

        This should subclass Real.
        """
        raise NotImplementedError

    @property
    @abstractmethod
    def imag(self):
        """Retrieve the imaginary component of this number.

        This should subclass Real.
        """
        raise NotImplementedError

    @abstractmethod
    def __add__(self, other):
        """self + other"""
        raise NotImplementedError

    @abstractmethod
    def __radd__(self, other):
        """other + self"""
        raise NotImplementedError

    @abstractmethod
    def __neg__(self):
        """-self"""
        raise NotImplementedError

    @abstractmethod
    def __pos__(self):
        """+self"""
        raise NotImplementedError

    def __sub__(self, other):
        """self - other"""
        return self + -other

    def __rsub__(self, other):
        """other - self"""
        return -self + other

    @abstractmethod
    def __mul__(self, other):
        """self * other"""
        raise NotImplementedError

    @abstractmethod
    def __rmul__(self, other):
        """other * self"""
        raise NotImplementedError

    @abstractmethod
    def __truediv__(self, other):
        """self / other: Should promote to float when necessary."""
        raise NotImplementedError

    @abstractmethod
    def __rtruediv__(self, other):
        """other / self"""
        raise NotImplementedError

    @abstractmethod
    def __pow__(self, exponent):
        """self**exponent; should promote to float or complex when necessary."""
        raise NotImplementedError

    @abstractmethod
    def __rpow__(self, base):
        """base ** self"""
        raise NotImplementedError

    @abstractmethod
    def __abs__(self):
        """Returns the Real distance from 0. Called for abs(self)."""
        raise NotImplementedError

    @abstractmethod
    def conjugate(self):
        """(x+y*i).conjugate() returns (x-y*i)."""
        raise NotImplementedError

    @abstractmethod
    def __eq__(self, other):
        """self == other"""
        raise NotImplementedError

Complex.register(complex)


class Real(Complex):
    """To Complex, Real adds the operations that work on real numbers.

    In short, those are: a conversion to float, trunc(), divmod,
    %, <, <=, >, and >=.

    Real also provides defaults for the derived operations.
    """

    __slots__ = ()

    @abstractmethod
    def __float__(self):
        """Any Real can be converted to a native float object.

        Called for float(self)."""
        raise NotImplementedError

    @abstractmethod
    def __trunc__(self):
        """trunc(self): Truncates self to an Integral.

        Returns an Integral i such that:
          * i>0 iff self>0;
          * abs(i) <= abs(self);
          * for any Integral j satisfying the first two conditions,
            abs(i) >= abs(j) [i.e. i has "maximal" abs among those].
        i.e. "truncate towards 0".
        """
        raise NotImplementedError

    @abstractmethod
    def __floor__(self):
        """Finds the greatest Integral <= self."""
        raise NotImplementedError

    @abstractmethod
    def __ceil__(self):
        """Finds the least Integral >= self."""
        raise NotImplementedError

    @abstractmethod
    def __round__(self, ndigits=None):
        """Rounds self to ndigits decimal places, defaulting to 0.

        If ndigits is omitted or None, returns an Integral, otherwise
        returns a Real. Rounds half toward even.
        """
        raise NotImplementedError

    def __divmod__(self, other):
        """divmod(self, other): The pair (self // other, self % other).

        Sometimes this can be computed faster than the pair of
        operations.
        """
        return (self // other, self % other)

    def __rdivmod__(self, other):
        """divmod(other, self): The pair (self // other, self % other).

        Sometimes this can be computed faster than the pair of
        operations.
        """
        return (other // self, other % self)

    @abstractmethod
    def __floordiv__(self, other):
        """self // other: The floor() of self/other."""
        raise NotImplementedError

    @abstractmethod
    def __rfloordiv__(self, other):
        """other // self: The floor() of other/self."""
        raise NotImplementedError

    @abstractmethod
    def __mod__(self, other):
        """self % other"""
        raise NotImplementedError

    @abstractmethod
    def __rmod__(self, other):
        """other % self"""
        raise NotImplementedError

    @abstractmethod
    def __lt__(self, other):
        """self < other

        < on Reals defines a total ordering, except perhaps for NaN."""
        raise NotImplementedError

    @abstractmethod
    def __le__(self, other):
        """self <= other"""
        raise NotImplementedError

    # Concrete implementations of Complex abstract methods.
    def __complex__(self):
        """complex(self) == complex(float(self), 0)"""
        return complex(float(self))

    @property
    def real(self):
        """Real numbers are their real component."""
        return +self

    @property
    def imag(self):
        """Real numbers have no imaginary component."""
        return 0

    def conjugate(self):
        """Conjugate is a no-op for Reals."""
        return +self

Real.register(float)


class Rational(Real):
    """.numerator and .denominator should be in lowest terms."""

    __slots__ = ()

    @property
    @abstractmethod
    def numerator(self):
        raise NotImplementedError

    @property
    @abstractmethod
    def denominator(self):
        raise NotImplementedError

    # Concrete implementation of Real's conversion to float.
    def __float__(self):
        """float(self) = self.numerator / self.denominator

        It's important that this conversion use the integer's "true"
        division rather than casting one side to float before dividing
        so that ratios of huge integers convert without overflowing.

        """
        return int(self.numerator) / int(self.denominator)


class Integral(Rational):
    """Integral adds methods that work on integral numbers.

    In short, these are conversion to int, pow with modulus, and the
    bit-string operations.
    """

    __slots__ = ()

    @abstractmethod
    def __int__(self):
        """int(self)"""
        raise NotImplementedError

    def __index__(self):
        """Called whenever an index is needed, such as in slicing"""
        return int(self)

    @abstractmethod
    def __pow__(self, exponent, modulus=None):
        """self ** exponent % modulus, but maybe faster.

        Accept the modulus argument if you want to support the
        3-argument version of pow(). Raise a TypeError if exponent < 0
        or any argument isn't Integral. Otherwise, just implement the
        2-argument version described in Complex.
        """
        raise NotImplementedError

    @abstractmethod
    def __lshift__(self, other):
        """self << other"""
        raise NotImplementedError

    @abstractmethod
    def __rlshift__(self, other):
        """other << self"""
        raise NotImplementedError

    @abstractmethod
    def __rshift__(self, other):
        """self >> other"""
        raise NotImplementedError

    @abstractmethod
    def __rrshift__(self, other):
        """other >> self"""
        raise NotImplementedError

    @abstractmethod
    def __and__(self, other):
        """self & other"""
        raise NotImplementedError

    @abstractmethod
    def __rand__(self, other):
        """other & self"""
        raise NotImplementedError

    @abstractmethod
    def __xor__(self, other):
        """self ^ other"""
        raise NotImplementedError

    @abstractmethod
    def __rxor__(self, other):
        """other ^ self"""
        raise NotImplementedError

    @abstractmethod
    def __or__(self, other):
        """self | other"""
        raise NotImplementedError

    @abstractmethod
    def __ror__(self, other):
        """other | self"""
        raise NotImplementedError

    @abstractmethod
    def __invert__(self):
        """~self"""
        raise NotImplementedError

    # Concrete implementations of Rational and Real abstract methods.
    def __float__(self):
        """float(self) == float(int(self))"""
        return float(int(self))

    @property
    def numerator(self):
        """Integers are their own numerators."""
        return +self

    @property
    def denominator(self):
        """Integers have a denominator of 1."""
        return 1

Integral.register(int)
Name
Size
Permissions
Options
__pycache__
--
drwxr-xr-x
asyncio
--
drwxr-xr-x
collections
--
drwxr-xr-x
concurrent
--
drwxr-xr-x
config-3.10-x86_64-linux-gnu
--
drwxr-xr-x
ctypes
--
drwxr-xr-x
curses
--
drwxr-xr-x
dbm
--
drwxr-xr-x
distutils
--
drwxr-xr-x
email
--
drwxr-xr-x
encodings
--
drwxr-xr-x
ensurepip
--
drwxr-xr-x
html
--
drwxr-xr-x
http
--
drwxr-xr-x
importlib
--
drwxr-xr-x
json
--
drwxr-xr-x
lib-dynload
--
drwxr-xr-x
lib2to3
--
drwxr-xr-x
logging
--
drwxr-xr-x
multiprocessing
--
drwxr-xr-x
pydoc_data
--
drwxr-xr-x
site-packages
--
drwxr-xr-x
sqlite3
--
drwxr-xr-x
unittest
--
drwxr-xr-x
urllib
--
drwxr-xr-x
venv
--
drwxr-xr-x
wsgiref
--
drwxr-xr-x
xml
--
drwxr-xr-x
xmlrpc
--
drwxr-xr-x
zoneinfo
--
drwxr-xr-x
LICENSE.txt
13.609 KB
-rw-r--r--
__future__.py
5.034 KB
-rw-r--r--
__phello__.foo.py
0.063 KB
-rw-r--r--
_aix_support.py
3.193 KB
-rw-r--r--
_bootsubprocess.py
2.612 KB
-rw-r--r--
_collections_abc.py
31.527 KB
-rw-r--r--
_compat_pickle.py
8.544 KB
-rw-r--r--
_compression.py
5.548 KB
-rw-r--r--
_markupbase.py
14.31 KB
-rw-r--r--
_osx_support.py
21.276 KB
-rw-r--r--
_py_abc.py
6.044 KB
-rw-r--r--
_pydecimal.py
223.316 KB
-rw-r--r--
_pyio.py
92.253 KB
-rw-r--r--
_sitebuiltins.py
3.055 KB
-rw-r--r--
_strptime.py
24.685 KB
-rw-r--r--
_sysconfigdata__linux_x86_64-linux-gnu.py
40.376 KB
-rw-r--r--
_sysconfigdata_d_linux_x86_64-linux-gnu.py
39.808 KB
-rw-r--r--
_threading_local.py
7.051 KB
-rw-r--r--
_weakrefset.py
5.784 KB
-rw-r--r--
abc.py
6.369 KB
-rw-r--r--
aifc.py
31.841 KB
-rw-r--r--
antigravity.py
0.488 KB
-rw-r--r--
argparse.py
96.233 KB
-rw-r--r--
ast.py
58.496 KB
-rw-r--r--
asynchat.py
11.25 KB
-rw-r--r--
asyncore.py
19.793 KB
-rw-r--r--
base64.py
20.371 KB
-rwxr-xr-x
bdb.py
31.637 KB
-rw-r--r--
binhex.py
14.438 KB
-rw-r--r--
bisect.py
3.062 KB
-rw-r--r--
bz2.py
11.569 KB
-rw-r--r--
cProfile.py
6.211 KB
-rwxr-xr-x
calendar.py
23.999 KB
-rw-r--r--
cgi.py
33.312 KB
-rwxr-xr-x
cgitb.py
11.813 KB
-rw-r--r--
chunk.py
5.308 KB
-rw-r--r--
cmd.py
14.512 KB
-rw-r--r--
code.py
10.373 KB
-rw-r--r--
codecs.py
35.854 KB
-rw-r--r--
codeop.py
5.478 KB
-rw-r--r--
colorsys.py
3.923 KB
-rw-r--r--
compileall.py
19.777 KB
-rw-r--r--
configparser.py
53.332 KB
-rw-r--r--
contextlib.py
25.275 KB
-rw-r--r--
contextvars.py
0.126 KB
-rw-r--r--
copy.py
8.478 KB
-rw-r--r--
copyreg.py
7.252 KB
-rw-r--r--
crypt.py
3.758 KB
-rw-r--r--
csv.py
15.654 KB
-rw-r--r--
dataclasses.py
55.068 KB
-rw-r--r--
datetime.py
86.021 KB
-rw-r--r--
decimal.py
0.313 KB
-rw-r--r--
difflib.py
81.355 KB
-rw-r--r--
dis.py
19.551 KB
-rw-r--r--
doctest.py
102.679 KB
-rw-r--r--
enum.py
38.897 KB
-rw-r--r--
filecmp.py
9.939 KB
-rw-r--r--
fileinput.py
16.057 KB
-rw-r--r--
fnmatch.py
6.556 KB
-rw-r--r--
fractions.py
27.58 KB
-rw-r--r--
ftplib.py
34.664 KB
-rw-r--r--
functools.py
37.184 KB
-rw-r--r--
genericpath.py
5.123 KB
-rw-r--r--
getopt.py
7.313 KB
-rw-r--r--
getpass.py
5.85 KB
-rw-r--r--
gettext.py
26.627 KB
-rw-r--r--
glob.py
7.703 KB
-rw-r--r--
graphlib.py
9.349 KB
-rw-r--r--
gzip.py
21.337 KB
-rw-r--r--
hashlib.py
9.989 KB
-rw-r--r--
heapq.py
22.341 KB
-rw-r--r--
hmac.py
7.536 KB
-rw-r--r--
imaplib.py
53.924 KB
-rw-r--r--
imghdr.py
3.719 KB
-rw-r--r--
imp.py
10.343 KB
-rw-r--r--
inspect.py
121.463 KB
-rw-r--r--
io.py
4.098 KB
-rw-r--r--
ipaddress.py
78.942 KB
-rw-r--r--
keyword.py
1.036 KB
-rw-r--r--
linecache.py
5.557 KB
-rw-r--r--
locale.py
76.293 KB
-rw-r--r--
lzma.py
12.966 KB
-rw-r--r--
mailbox.py
76.947 KB
-rw-r--r--
mailcap.py
8.902 KB
-rw-r--r--
mimetypes.py
22.011 KB
-rw-r--r--
modulefinder.py
23.829 KB
-rw-r--r--
netrc.py
5.612 KB
-rw-r--r--
nntplib.py
40.062 KB
-rw-r--r--
ntpath.py
29.242 KB
-rw-r--r--
nturl2path.py
2.819 KB
-rw-r--r--
numbers.py
10.105 KB
-rw-r--r--
opcode.py
5.764 KB
-rw-r--r--
operator.py
10.499 KB
-rw-r--r--
optparse.py
58.954 KB
-rw-r--r--
os.py
38.63 KB
-rw-r--r--
pathlib.py
48.413 KB
-rw-r--r--
pdb.py
61.756 KB
-rwxr-xr-x
pickle.py
63.427 KB
-rw-r--r--
pickletools.py
91.295 KB
-rw-r--r--
pipes.py
8.705 KB
-rw-r--r--
pkgutil.py
24 KB
-rw-r--r--
platform.py
41.051 KB
-rwxr-xr-x
plistlib.py
27.688 KB
-rw-r--r--
poplib.py
14.842 KB
-rw-r--r--
posixpath.py
16.051 KB
-rw-r--r--
pprint.py
23.871 KB
-rw-r--r--
profile.py
22.359 KB
-rwxr-xr-x
pstats.py
28.639 KB
-rw-r--r--
pty.py
5.091 KB
-rw-r--r--
py_compile.py
7.707 KB
-rw-r--r--
pyclbr.py
11.129 KB
-rw-r--r--
pydoc.py
107.034 KB
-rwxr-xr-x
queue.py
11.227 KB
-rw-r--r--
quopri.py
7.11 KB
-rwxr-xr-x
random.py
32.442 KB
-rw-r--r--
re.py
15.488 KB
-rw-r--r--
reprlib.py
5.144 KB
-rw-r--r--
rlcompleter.py
7.634 KB
-rw-r--r--
runpy.py
12.804 KB
-rw-r--r--
sched.py
6.202 KB
-rw-r--r--
secrets.py
1.988 KB
-rw-r--r--
selectors.py
19.078 KB
-rw-r--r--
shelve.py
8.359 KB
-rw-r--r--
shlex.py
13.185 KB
-rw-r--r--
shutil.py
53.293 KB
-rw-r--r--
signal.py
2.381 KB
-rw-r--r--
site.py
22.389 KB
-rw-r--r--
smtpd.py
34.354 KB
-rwxr-xr-x
smtplib.py
44.366 KB
-rwxr-xr-x
sndhdr.py
6.933 KB
-rw-r--r--
socket.py
36.139 KB
-rw-r--r--
socketserver.py
26.656 KB
-rw-r--r--
sre_compile.py
27.317 KB
-rw-r--r--
sre_constants.py
7.009 KB
-rw-r--r--
sre_parse.py
39.823 KB
-rw-r--r--
ssl.py
52.632 KB
-rw-r--r--
stat.py
5.356 KB
-rw-r--r--
statistics.py
42.192 KB
-rw-r--r--
string.py
10.318 KB
-rw-r--r--
stringprep.py
12.614 KB
-rw-r--r--
struct.py
0.251 KB
-rw-r--r--
subprocess.py
82.927 KB
-rw-r--r--
sunau.py
17.732 KB
-rw-r--r--
symtable.py
9.978 KB
-rw-r--r--
sysconfig.py
26.962 KB
-rw-r--r--
tabnanny.py
11.047 KB
-rwxr-xr-x
tarfile.py
108.993 KB
-rwxr-xr-x
telnetlib.py
22.709 KB
-rw-r--r--
tempfile.py
28.778 KB
-rw-r--r--
textwrap.py
19.309 KB
-rw-r--r--
this.py
0.979 KB
-rw-r--r--
threading.py
55.412 KB
-rw-r--r--
timeit.py
13.191 KB
-rwxr-xr-x
token.py
2.33 KB
-rw-r--r--
tokenize.py
25.313 KB
-rw-r--r--
trace.py
28.544 KB
-rwxr-xr-x
traceback.py
25.607 KB
-rw-r--r--
tracemalloc.py
17.624 KB
-rw-r--r--
tty.py
0.858 KB
-rw-r--r--
types.py
9.88 KB
-rw-r--r--
typing.py
90.388 KB
-rw-r--r--
uu.py
7.106 KB
-rw-r--r--
uuid.py
26.855 KB
-rw-r--r--
warnings.py
19.227 KB
-rw-r--r--
wave.py
17.582 KB
-rw-r--r--
weakref.py
21.055 KB
-rw-r--r--
webbrowser.py
23.689 KB
-rwxr-xr-x
xdrlib.py
5.774 KB
-rw-r--r--
zipapp.py
7.358 KB
-rw-r--r--
zipfile.py
88.087 KB
-rw-r--r--
zipimport.py
30.167 KB
-rw-r--r--