我不知道为什么导入ctypes时会出错

2024-04-30 03:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我更改了内置函数len的定义,然后尝试导入ctypes模块。但是我不知道为什么我这么做的时候会出错那个。给是我的代码:

import builtins

def func(obj):
    print("Length: %d" % len(obj))
builtins.len = lambda obj: "Bad!!!"

import ctypes

下面是错误的回溯:

Traceback (most recent call last):


  File "<stdin>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 661, in exec_module
  File "<frozen importlib._bootstrap_external>", line 772, in get_code
  File "<frozen importlib._bootstrap_external>", line 491, in _code_to_bytecode
  File "<frozen importlib._bootstrap_external>", line 42, in _w_long
ValueError: invalid literal for int() with base 10: 'Bad!!!'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 53, in apport_excepthook
    if not enabled():
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 24, in enabled
    import re
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 661, in exec_module
  File "<frozen importlib._bootstrap_external>", line 772, in get_code
  File "<frozen importlib._bootstrap_external>", line 491, in _code_to_bytecode
  File "<frozen importlib._bootstrap_external>", line 42, in _w_long
ValueError: invalid literal for int() with base 10: 'Bad!!!'

Original exception was:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 661, in exec_module
  File "<frozen importlib._bootstrap_external>", line 772, in get_code
  File "<frozen importlibbootstrap_external>", line 491, in _code_to_bytecode
  File "<frozen importlib._bootstrap_external>", line 42, in _w_long
ValueError: invalid literal for int() with base 10: 'Bad!!!'

这让我很困惑。如果有人能帮我的话,非常感谢!你知道吗


Tags: andinlenlinecodeloadimportlibfind
1条回答
网友
1楼 · 发布于 2024-04-30 03:28:59

因为len函数返回非整数字符串。你知道吗

你只是以完全相同的行为奔跑:

>>> int("I should know playing with builtins is always a bad thing")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'lol'

尝试更新您的代码,如:

builtins.len = lambda obj: "123"

去看看吧。你知道吗

相关问题 更多 >