C strcopy в Python с использованием Ctypes

#python

#python

Вопрос:

Я написал этот код, не ожидая, что он сработает:

 clib = cdll.msvcrt
string = "Hello"
clib.strcpy(string, "WURT")
print(string)
  

Он распечатал:

 "Hello"
  

Для меня это имело смысл. В конце концов, строки Python — это объекты, поэтому я решил сделать то, что, по моему мнению, было бы правильной реализацией:

 clib = cdll.msvcrt
string = c_wchar_p("")
clib.strcpy(string,"Hello")
print(string)
  

Он выводит «H», и я почесал голову и сказал, что за …? Есть идеи, почему он копирует только одну букву?

Комментарии:

1. string это модуль Python, вероятно, лучше избегать его использования в качестве имени переменной.

2. То же самое поведение с любым другим именем, которое я выбрал, и string отсутствует в моем текущем глобальном пространстве имен, но спасибо, что поставили меня в известность. 😛