normal, no change
>>> import bisect
>>> bisect.bisect.__module__
'_bisect'

I change from "from _bisect import *" to "pass" in bisect.py

>>> import bisect
>>> bisect.bisect.__module__
'bisect'

bisect.bisect.__module__ return different results.
they are '_bisect' and 'bisect'.

I know that c extension document recomended us to use _ for c extension name prefix.

I use "bisect.bisect.__module__" sentence to determine for using c extension or not.

thanks.

On 2015年08月03日 23:11, Joel Goldstick wrote:
On Mon, Aug 3, 2015 at 10:01 AM, umedoblock <umedobl...@gmail.com> wrote:
sorry, Joel, Skip, Steven, and python-list members.

I think that I don't sent my mail to python-list@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.



--
https://mail.python.org/mailman/listinfo/python-list

Welcome to the mailing list, and as I see above, you got a good answer.


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to