Cette fois, c'est une opération de pointeur, donc Pour utiliser des pointeurs en python, je pourrais écrire du code en Python sans y penser. Je n'ai pas beaucoup étudié, mais je décrirai ce que j'ai étudié.
Après de nombreuses recherches, j'ai trouvé quelque chose appelé ctypes - Bibliothèque de fonctions externes pour Python. J'étais reconnaissant de voir cela car le didacticiel était en japonais, mais comme il s'agissait de savoir comment l'utiliser sur Windows, je cherchais différentes façons de l'utiliser sur Mac stacoverflow 11554355 / mac-os-x-lion-python-ctype-cdll-error-lib-so-6-image-not-found).
J'ai essayé de l'utiliser dans mon propre environnement, je vais donc le décrire.
>>> from ctypes import *
>>> cdll.LoadLibrary("libc.dylib")
<CDLL 'libc.dylib', handle 7fff6903da98 at 0x1052f6fd0>
>>> libc = CDLL("libc.dylib")
>>> printf = libc.printf
>>> printf(b"Hello, %s\n", b"World!")
Hello, World!
14
>>> strchr = libc.strchr
>>> strchr(b"abcdef", ord("d"))
87110915
>>>
En tant que question importante
C'était ça, La réponse suivante en manipulant le code C ++ du tableau
void append(arrayString& s, char c){
int oldLength = 0;
while(s[oldLength] != 0) {
oldLength++;
}
arrayString newS = new char[oldLength + 2];
for(int i = 0; i < oldLength; i++) {
newS[i] = s[i];
}
newS[oldLength] = c;
newS[oldLength + 1] = 0;
delete[] s;
s = newS;
}
#!/usr/bin/env python
#coding:utf-8
#module ctypes(Pour Mac)
from ctypes import *
#cdll.LoadLibrary("libc.dylib")
#libc = CDLL("libc.dylib")
def add(s,c):
print('Chaîne précédente:',list(s))
print('Pointeur précédent:', c_wchar_p(s))
newlength = len(s)+2
newS = []
for i in s:
newS += i
for j in c:
newS += j
print('Après la chaîne:',newS)
print('Pointeur ultérieur:', c_wchar_p(str(newS)))
>>>(Terminal d'exécution)
>>> from test38 import add
>>> add("test","! ")
Chaîne précédente:['t', 'e', 's', 't']
Pointeur précédent: c_wchar_p(140481723952464)
Après la chaîne:['t', 'e', 's', 't', '!', ' ']
Après le pointeur: c_wchar_p(140481723970864)
>>>
Je n'avais pas vraiment besoin du module ctypes, mais j'ai découvert que Python pouvait également utiliser le langage C.
Recommended Posts