Structure
- Python kursu
- Uzman
- Ders 23/47
- 5 dk
ctypes.Structure ile C struct'ı öğrenirsin.
Structure nedir?
ctypes.Structure, C struct'larını Python'da temsil eder. _fields_ listesi ile alan adlarını ve türlerini belirtirsin.
Örneğin class Point(Structure): _fields_ = [('x', c_int), ('y', c_int)] tanımı, x ve y alanlarına sahip bir yapı oluşturur. p = Point(3, 4) ile örnekler, p.x ile erişirsin. Bu, C kütüphanelerindeki yapıları doğrudan Python'da kullanmayı sağlar ve ikili veri okumada çok yararlıdır.
Alan erişimi
Bir Structure örneği oluşturduktan sonra alanlara nokta ile erişirsin: p.x, p.y. Hem okuma hem yazma yapılabilir.
Alan sırası _fields_ listesinin sırasıyla aynıdır. Point(3, 4) çağrısı ilk alanı 3, ikinciyi 4 yapar. İç içe yapılar da desteklenir: bir alanın türü başka bir Structure olabilir. Bu, C'deki karmaşık veri yapılarını Python'da kolayca modellemeyi sağlar.
Uygulama Structure ile nokta tanımla
import ctypes ile modülü içe aktar. Point(ctypes.Structure) sınıfı yaz; _fields_ = [('x', ctypes.c_int), ('y', ctypes.c_int)] tanımla. Point(3, 4) ile örnek oluştur ve p.x ve p.y'yi yazdır.
Başlangıç kodu
# Point yapısı yaz
# örnek oluştur ve yazdırÖrnek çözüm
import ctypes
class Point(ctypes.Structure):
_fields_ = [("x", ctypes.c_int), ("y", ctypes.c_int)]
p = Point(3, 4)
print(p.x, p.y)Beklenen çıktı
3 4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Structure hangi özniteliği kullanır?
class Point(ctypes.Structure):
_fields_ = [('x', c_int)]- __init__
- __dict__
- __slots__
- _fields_ Doğru cevap
Açıklama: Bu liste alan adlarını ve türlerini tanımlar.
2 Structure kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
Structure |
C struct temeli |
_fields_ |
Alan listesi |
Point(3,4) |
Örnek oluşturma |
p.x |
Alan erişimi |
3 Structure tanımını tamamla
class Point(ctypes.____):
_fields_ = [('x', c_int)]
class Point(ctypes.Structure):
_fields_ = [('x', c_int)]
Açıklama: Bir yapı ctypes.Structure'dan türetilir.