CHNwldcmzy 发表于 2020-4-15 15:46:49

如何寻找python基础内容的源码

最近突然想看一些源码了,想从最基础的看起,比如int类,str类的定义,但是我没能找到这些基础东西的源码在哪{:10_250:}求帮助

永恒的蓝色梦想 发表于 2020-4-15 15:48:14

本帖最后由 永恒的蓝色梦想 于 2020-4-15 16:03 编辑

这些类的源代码全都是C哦
int源码
str源码

六小鸭 发表于 2020-4-15 15:49:14

在idle里面输入help(函数)就OK了

永恒的蓝色梦想 发表于 2020-4-15 15:49:31

github 上的 cpython 项目

六小鸭 发表于 2020-4-15 15:49:54

>>>help(int)
Help on class int in module builtins:

class int(object)
|int() -> integer
|int(x, base=10) -> integer
|
|Convert a number or string to an integer, or return 0 if no arguments
|are given.If x is a number, return x.__int__().For floating point
|numbers, this truncates towards zero.
|
|If x is not a number or if base is given, then x must be a string,
|bytes, or bytearray instance representing an integer literal in the
|given base.The literal can be preceded by '+' or '-' and be surrounded
|by whitespace.The base defaults to 10.Valid bases are 0 and 2-36.
|Base 0 means to interpret the base from the string as an integer literal.
|>>> int('0b100', base=0)
|4
|
|Methods defined here:
|
|__abs__(self, /)
|      abs(self)
|
|__add__(self, value, /)
|      Return self+value.
|
|__and__(self, value, /)
|      Return self&value.
|
|__bool__(self, /)
|      self != 0
|
|__ceil__(...)
|      Ceiling of an Integral returns itself.
|
|__divmod__(self, value, /)
|      Return divmod(self, value).
|
|__eq__(self, value, /)
|      Return self==value.
|
|__float__(self, /)
|      float(self)
|
|__floor__(...)
|      Flooring an Integral returns itself.
|
|__floordiv__(self, value, /)
|      Return self//value.
|
|__format__(self, format_spec, /)
|      Default object formatter.
|
|__ge__(self, value, /)
|      Return self>=value.
|
|__getattribute__(self, name, /)
|      Return getattr(self, name).
|
|__getnewargs__(self, /)
|
|__gt__(self, value, /)
|      Return self>value.
|
|__hash__(self, /)
|      Return hash(self).
|
|__index__(self, /)
|      Return self converted to an integer, if self is suitable for use as an index into a list.
|
|__int__(self, /)
|      int(self)
|
|__invert__(self, /)
|      ~self
|
|__le__(self, value, /)
|      Return self<=value.
|
|__lshift__(self, value, /)
|      Return self<<value.
|
|__lt__(self, value, /)
|      Return self<value.
|
|__mod__(self, value, /)
|      Return self%value.
|
|__mul__(self, value, /)
|      Return self*value.
|
|__ne__(self, value, /)
|      Return self!=value.
|
|__neg__(self, /)
|      -self
|
|__or__(self, value, /)
|      Return self|value.
|
|__pos__(self, /)
|      +self
|
|__pow__(self, value, mod=None, /)
|      Return pow(self, value, mod).
|
|__radd__(self, value, /)
|      Return value+self.
|
|__rand__(self, value, /)
|      Return value&self.
|
|__rdivmod__(self, value, /)
|      Return divmod(value, self).
|
|__repr__(self, /)
|      Return repr(self).
|
|__rfloordiv__(self, value, /)
|      Return value//self.
|
|__rlshift__(self, value, /)
|      Return value<<self.
|
|__rmod__(self, value, /)
|      Return value%self.
|
|__rmul__(self, value, /)
|      Return value*self.
|
|__ror__(self, value, /)
|      Return value|self.
|
|__round__(...)
|      Rounding an Integral returns itself.
|      Rounding with an ndigits argument also returns an integer.
|
|__rpow__(self, value, mod=None, /)
|      Return pow(value, self, mod).
|
|__rrshift__(self, value, /)
|      Return value>>self.
|
|__rshift__(self, value, /)
|      Return self>>value.
|
|__rsub__(self, value, /)
|      Return value-self.
|
|__rtruediv__(self, value, /)
|      Return value/self.
|
|__rxor__(self, value, /)
|      Return value^self.
|
|__sizeof__(self, /)
|      Returns size in memory, in bytes.
|
|__str__(self, /)
|      Return str(self).
|
|__sub__(self, value, /)
|      Return self-value.
|
|__truediv__(self, value, /)
|      Return self/value.
|
|__trunc__(...)
|      Truncating an Integral returns itself.
|
|__xor__(self, value, /)
|      Return self^value.
|
|bit_length(self, /)
|      Number of bits necessary to represent self in binary.
|      
|      >>> bin(37)
|      '0b100101'
|      >>> (37).bit_length()
|      6
|
|conjugate(...)
|      Returns self, the complex conjugate of any int.
|
|to_bytes(self, /, length, byteorder, *, signed=False)
|      Return an array of bytes representing an integer.
|      
|      length
|      Length of bytes object to use.An OverflowError is raised if the
|      integer is not representable with the given number of bytes.
|      byteorder
|      The byte order used to represent the integer.If byteorder is 'big',
|      the most significant byte is at the beginning of the byte array.If
|      byteorder is 'little', the most significant byte is at the end of the
|      byte array.To request the native byte order of the host system, use
|      `sys.byteorder' as the byte order value.
|      signed
|      Determines whether two's complement is used to represent the integer.
|      If signed is False and a negative integer is given, an OverflowError
|      is raised.
|
|----------------------------------------------------------------------
|Class methods defined here:
|
|from_bytes(bytes, byteorder, *, signed=False) from builtins.type
|      Return the integer represented by the given array of bytes.
|      
|      bytes
|      Holds the array of bytes to convert.The argument must either
|      support the buffer protocol or be an iterable object producing bytes.
|      Bytes and bytearray are examples of built-in objects that support the
|      buffer protocol.
|      byteorder
|      The byte order used to represent the integer.If byteorder is 'big',
|      the most significant byte is at the beginning of the byte array.If
|      byteorder is 'little', the most significant byte is at the end of the
|      byte array.To request the native byte order of the host system, use
|      `sys.byteorder' as the byte order value.
|      signed
|      Indicates whether two's complement is used to represent the integer.
|
|----------------------------------------------------------------------
|Static methods defined here:
|
|__new__(*args, **kwargs) from builtins.type
|      Create and return a new object.See help(type) for accurate signature.
|
|----------------------------------------------------------------------
|Data descriptors defined here:
|
|denominator
|      the denominator of a rational number in lowest terms
|
|imag
|      the imaginary part of a complex number
|
|numerator
|      the numerator of a rational number in lowest terms
|
|real
|      the real part of a complex number

永恒的蓝色梦想 发表于 2020-4-15 15:50:32

六小鸭 发表于 2020-4-15 15:49
在idle里面输入help(函数)就OK了

帮助信息不是源代码

永恒的蓝色梦想 发表于 2020-4-15 15:56:13

int源码
str源码

hrp 发表于 2020-4-15 16:01:13

int类型这些都是C语言实现的,并不是用python写的

CHNwldcmzy 发表于 2020-4-15 16:09:28

感谢大家的帮助,之前还以为int类型的源码也是用python写的,现在打算先看一下能不能弄懂c语言实现的代码,然后在去找点简单的包的源码看一下

永恒的蓝色梦想 发表于 2020-4-15 16:14:36

CHNwldcmzy 发表于 2020-4-15 16:09
感谢大家的帮助,之前还以为int类型的源码也是用python写的,现在打算先看一下能不能弄懂c语言实现的代码, ...

如果C不是很好的话,建议不要尝试
页: [1]
查看完整版本: 如何寻找python基础内容的源码