how to determine for using c extension or not ?

umedoblock umedoblock at gmail.com
Mon Aug 3 16:01:59 CEST 2015


sorry, Joel, Skip, Steven, and python-list members.

I think that I don't sent my mail to python-list at python.org or I don't 
have correct mail setting.

so I send many mails.

sorry... I should wait a day to get answer, sorry.

On 2015年08月03日 22:36, Steven D'Aprano wrote:
> On Mon, 3 Aug 2015 03:47 pm, umedoblock wrote:
>
>> Hello everyone.
>>
>> I use bisect module.
>
> You asked the same question FOUR times. Have patience. Your question goes
> all over the world, people may be asleep, or working, or just not know the
> answer. If you ask a question, and get no answers, you should wait a full
> day before asking again.
>
>
>> bisect module developer give us c extension as _bisect.
>>
>> If Python3.3 use _bisect, _bisect override his functions in bisect.py.
>
> So does Python 2.7.
>
>
>> now, I use id() function to determine for using c extension or not.
>
> The id() function doesn't tell you where objects come from or what language
> they are written in. But they will tell you if two objects are the same
> object.
>
>>>>> import bisect
>>>>> id(bisect.bisect)
>> 139679893708880
>>>>> import _bisect
>>>>> id(_bisect.bisect)
>> 139679893708880
>>
>> they return 139679893708880 as id.
>> so i believe that i use c extension.
>
> Correct.
>
> Also, you can do this:
>
>
> py> import bisect
> py> bisect.__file__
> '/usr/local/lib/python2.7/bisect.pyc'
> py> bisect.bisect.__module__  # Where does the bisect file come from?
> '_bisect'
> py> import _bisect
> py> _bisect.__file__
> '/usr/local/lib/python2.7/lib-dynload/_bisect.so'
>
> So you can see that _bisect is a .so file (on Linux; on Windows it will be
> a .dll file), which means written in C.
>
>



More information about the Python-list mailing list