mirror of
https://github.com/python/cpython.git
synced 2025-08-30 05:35:08 +00:00
gh-109218: Improve documentation for the complex() constructor (GH-119687)
* Remove the equivalence with real+imag*1j which can be incorrect in corner cases (non-finite numbers, the sign of zeroes). * Separately document the three roles of the constructor: parsing a string, converting a number, and constructing a complex from components. * Document positional-only parameters of complex(), float(), int() and bool() as positional-only. * Add examples for complex() and int(). * Specify the grammar of the string for complex(). * Improve the grammar of the string for float(). * Describe more explicitly the behavior when real and/or imag arguments are complex numbers. (This will be deprecated in future.)
This commit is contained in:
parent
1c04c63ced
commit
ec1ba26460
4 changed files with 135 additions and 63 deletions
|
@ -911,14 +911,17 @@ complex.__new__ as complex_new
|
|||
real as r: object(c_default="NULL") = 0
|
||||
imag as i: object(c_default="NULL") = 0
|
||||
|
||||
Create a complex number from a real part and an optional imaginary part.
|
||||
Create a complex number from a string or numbers.
|
||||
|
||||
This is equivalent to (real + imag*1j) where imag defaults to 0.
|
||||
If a string is given, parse it as a complex number.
|
||||
If a single number is given, convert it to a complex number.
|
||||
If the 'real' or 'imag' arguments are given, create a complex number
|
||||
with the specified real and imaginary components.
|
||||
[clinic start generated code]*/
|
||||
|
||||
static PyObject *
|
||||
complex_new_impl(PyTypeObject *type, PyObject *r, PyObject *i)
|
||||
/*[clinic end generated code: output=b6c7dd577b537dc1 input=f4c667f2596d4fd1]*/
|
||||
/*[clinic end generated code: output=b6c7dd577b537dc1 input=ff4268dc540958a4]*/
|
||||
{
|
||||
PyObject *tmp;
|
||||
PyNumberMethods *nbr, *nbi = NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue