17db96d56Sopenharmony_ci.. highlight:: c 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci.. _concrete: 57db96d56Sopenharmony_ci 67db96d56Sopenharmony_ci********************** 77db96d56Sopenharmony_ciConcrete Objects Layer 87db96d56Sopenharmony_ci********************** 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ciThe functions in this chapter are specific to certain Python object types. 117db96d56Sopenharmony_ciPassing them an object of the wrong type is not a good idea; if you receive an 127db96d56Sopenharmony_ciobject from a Python program and you are not sure that it has the right type, 137db96d56Sopenharmony_ciyou must perform a type check first; for example, to check that an object is a 147db96d56Sopenharmony_cidictionary, use :c:func:`PyDict_Check`. The chapter is structured like the 157db96d56Sopenharmony_ci"family tree" of Python object types. 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_ci.. warning:: 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci While the functions described in this chapter carefully check the type of the 207db96d56Sopenharmony_ci objects which are passed in, many of them do not check for ``NULL`` being passed 217db96d56Sopenharmony_ci instead of a valid object. Allowing ``NULL`` to be passed in can cause memory 227db96d56Sopenharmony_ci access violations and immediate termination of the interpreter. 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ci.. _fundamental: 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ciFundamental Objects 287db96d56Sopenharmony_ci=================== 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ciThis section describes Python type objects and the singleton object ``None``. 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ci.. toctree:: 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci type.rst 357db96d56Sopenharmony_ci none.rst 367db96d56Sopenharmony_ci 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci.. _numericobjects: 397db96d56Sopenharmony_ci 407db96d56Sopenharmony_ciNumeric Objects 417db96d56Sopenharmony_ci=============== 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci.. index:: pair: object; numeric 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci.. toctree:: 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci long.rst 487db96d56Sopenharmony_ci bool.rst 497db96d56Sopenharmony_ci float.rst 507db96d56Sopenharmony_ci complex.rst 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci.. _sequenceobjects: 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_ciSequence Objects 567db96d56Sopenharmony_ci================ 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ci.. index:: pair: object; sequence 597db96d56Sopenharmony_ci 607db96d56Sopenharmony_ciGeneric operations on sequence objects were discussed in the previous chapter; 617db96d56Sopenharmony_cithis section deals with the specific kinds of sequence objects that are 627db96d56Sopenharmony_ciintrinsic to the Python language. 637db96d56Sopenharmony_ci 647db96d56Sopenharmony_ci.. XXX sort out unicode, str, bytes and bytearray 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ci.. toctree:: 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci bytes.rst 697db96d56Sopenharmony_ci bytearray.rst 707db96d56Sopenharmony_ci unicode.rst 717db96d56Sopenharmony_ci tuple.rst 727db96d56Sopenharmony_ci list.rst 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ci 757db96d56Sopenharmony_ci.. _mapobjects: 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ciContainer Objects 787db96d56Sopenharmony_ci================= 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ci.. index:: pair: object; mapping 817db96d56Sopenharmony_ci 827db96d56Sopenharmony_ci.. toctree:: 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ci dict.rst 857db96d56Sopenharmony_ci set.rst 867db96d56Sopenharmony_ci 877db96d56Sopenharmony_ci 887db96d56Sopenharmony_ci.. _otherobjects: 897db96d56Sopenharmony_ci 907db96d56Sopenharmony_ciFunction Objects 917db96d56Sopenharmony_ci================ 927db96d56Sopenharmony_ci 937db96d56Sopenharmony_ci.. toctree:: 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_ci function.rst 967db96d56Sopenharmony_ci method.rst 977db96d56Sopenharmony_ci cell.rst 987db96d56Sopenharmony_ci code.rst 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_ciOther Objects 1027db96d56Sopenharmony_ci============= 1037db96d56Sopenharmony_ci 1047db96d56Sopenharmony_ci.. toctree:: 1057db96d56Sopenharmony_ci 1067db96d56Sopenharmony_ci file.rst 1077db96d56Sopenharmony_ci module.rst 1087db96d56Sopenharmony_ci iterator.rst 1097db96d56Sopenharmony_ci descriptor.rst 1107db96d56Sopenharmony_ci slice.rst 1117db96d56Sopenharmony_ci memoryview.rst 1127db96d56Sopenharmony_ci weakref.rst 1137db96d56Sopenharmony_ci capsule.rst 1147db96d56Sopenharmony_ci frame.rst 1157db96d56Sopenharmony_ci gen.rst 1167db96d56Sopenharmony_ci coro.rst 1177db96d56Sopenharmony_ci contextvars.rst 1187db96d56Sopenharmony_ci datetime.rst 1197db96d56Sopenharmony_ci typehints.rst 120