Daha çox

Python ilə seçilmiş xüsusiyyətləri redaktə etmək mümkündürmü?


ArcMap-da seçilmiş xüsusiyyətlərin bəzi sahələrini düzəltməyə çalışıram. Bunu Python (ArcPy) ilə etmək mümkündürmü?


Əlbəttə, ArcMap içərisində ArcPy istifadə edərək seçilmiş xüsusiyyətləri düzəldə bilərsiniz. "Xüsusiyyət Layer" məlumat növü parametri ilə bir alət qutusu yaradın. Aləti çalıştırdığınızda ArcMap içərisindəki qatını seçin. Bu təbəqənin seçilmiş dəsti, ssenari icra edildikdə mövcud olacaqdır.


TfidfVectorizer, sözləri xüsusi olaraq necə daxil edəcəyinizi öyrənin

Sözlərin necə seçildiyi mənim üçün qaranlıqdır. Minimum dəstək verə bilərik, amma bundan sonra hansı xüsusiyyətlərin seçiləcəyinə nə qərar verəcəkdir (məsələn, daha yüksək dəstək daha çox şans)? Max_feature = 10000 deyiriksə, həmişə eyni oluruq? Max_features = 12000 desək, eyni 10000 xüsusiyyəti alacağıq, amma əlavə 2000 əlavə ediləcəkmi?

Bundan əlavə, max_features = 20000 xüsusiyyəti genişləndirməyin bir yolu varmı? Bəzi mətnlərə sığdırıram, amma əlavə edilməli olan bəzi sözləri və bəzi ifadələri ":-)" və s. Bilirəm. Bunları TfidfVectorizer obyektinə necə əlavə etmək olar ki, obyektdən istifadə etmək mümkün olsun. , uyğunlaşdırmaq və proqnozlaşdırmaq üçün istifadə edin


Modulun məzmunu

CSV modulu aşağıdakı funksiyaları müəyyənləşdirir:

CSV. oxucu ( csvfile, dialekt = 'excel', ** fmtparams ) ¶

Verilən sətirlərdə təkrarlanacaq bir oxucu obyektini qaytarın csvfile. csvfile iterator protokolunu dəstəkləyən və hər dəfə __next __ () metodu çağırıldıqda bir simli qaytaran hər hansı bir obyekt ola bilər - fayl obyektləri və siyahı obyektləri uyğun gəlir. Əgər csvfile bir fayl obyektidir, newline = '' ilə açılmalıdır. 1 İstəyə görə ləhcə müəyyən bir CSV ləhcəsinə xas olan bir sıra parametrləri təyin etmək üçün istifadə olunan parametr verilə bilər. Dialect sinfinin alt sinifinin və ya list_dialects () funksiyası tərəfindən qaytarılmış simlərdən birinin nümunəsi ola bilər. Digər istəyə görə fmtparams cari ləhcədə fərdi formatlaşdırma parametrlərini ləğv etmək üçün açar söz arqumentləri verilə bilər. Dialekt və formatlama parametrləri haqqında ətraflı məlumat üçün Ləhcələr və Biçimləmə Parametrləri bölməsinə baxın.

CSV faylından oxunan hər sətir sətirlərin siyahısı kimi qaytarılır. QUOTE_NONNUMERIC format seçimi göstərilmədikdə (bu halda alınmayan sahələr üzən halına çevrilir) avtomatik məlumat növü çevirmə həyata keçirilmir.

İstifadəçinin məlumatlarını verilmiş fayl bənzər obyektdə ayrılmış sətirlərə çevirməkdən məsul olan bir yazıçı obyektini qaytarın. csvfile write () metoduna malik istənilən obyekt ola bilər. Əgər csvfile bir fayl obyektidir, yeni sətirlə açılmalıdır = '' 1. İstəyə görə ləhcə müəyyən bir CSV ləhcəsinə xas olan bir sıra parametrləri təyin etmək üçün istifadə olunan parametr verilə bilər. Dialect sinfinin alt sinifinin və ya list_dialects () funksiyası tərəfindən qaytarılmış simlərdən birinin nümunəsi ola bilər. Digər istəyə görə fmtparams cari ləhcədə fərdi formatlaşdırma parametrlərini ləğv etmək üçün açar söz arqumentləri verilə bilər. Dialekt və formatlama parametrləri haqqında ətraflı məlumat üçün Ləhcələr və Biçimləmə Parametrləri bölməsinə baxın. DB API tətbiq edən modullarla interfeysi mümkün qədər asanlaşdırmaq üçün None dəyəri boş sətir kimi yazılır. Bu, geri çevrilə bilən bir çevrilmə olmasa da, bir cursor.fetch * çağırışından qaytarılan məlumatları əvvəlcədən işlətmədən SQL NULL məlumat dəyərlərini CSV sənədlərinə atmağı asanlaşdırır. Bütün digər simli olmayan məlumatlar yazılmadan əvvəl str () ilə sətirləşdirilir.

Associate ləhcə ilə ad. ad simli olmalıdır. Ləhcəsi ya dialektin alt sinifini keçməklə, ya da təyin etmək olar fmtparams açar söz mübahisələri və ya hər ikisi, açar söz arqumentləri ilə dialekt parametrlərini üstələyən. Dialekt və formatlama parametrləri haqqında ətraflı məlumat üçün Ləhcələr və Biçimləmə Parametrləri bölməsinə baxın.

CSV. qeydiyyatdan_dialekt ( ad ) ¶

İlə əlaqəli ləhcəni silin ad dialekt qeydindən. Əgər bir səhv yaranarsa ad qeydə alınmış bir ləhcə adı deyil.

İlə əlaqəli ləhcəni geri qaytarın ad. Əgər bir səhv yaranarsa ad qeydə alınmış bir ləhcə adı deyil. Bu funksiya dəyişməz bir ləhcəni qaytarır.

Bütün qeydə alınmış şivələrin adlarını qaytarın.

CSV. sahə_ölçüsü_ sınırı ([ yeni_sadiq ] ) ¶

Təhlilçinin icazə verdiyi cari maksimum sahə ölçüsünü qaytarır. Əgər yeni_sadiq verilir, bu yeni hədd olur.

CSV modulu aşağıdakı sinifləri müəyyənləşdirir:

Adi oxucu kimi işləyən, lakin hər sətirdəki məlumatları açarları istəyə görə verilən bir diktə uyğunlaşdıran bir obyekt yaradın. sahə adları parametr.

The sahə adları parametr bir ardıcıllıqdır. Əgər sahə adları faylın birinci cərgəsindəki dəyərlər buraxılmışdır f sahə adları kimi istifadə ediləcəkdir. Sahə adlarının necə təyin olunduğundan asılı olmayaraq, lüğət orijinal qaydalarını qoruyur.

Bir sətirdə sahə adlarından daha çox sahə varsa, qalan məlumatlar siyahıya salınır və göstərilən sahə adı ilə saxlanılır restkey (defolt olaraq Yoxdur). Boş olmayan bir sətirdə sahə adlarından daha az sahə varsa, itkin dəyərlər dəyəri ilə doldurulur restval (defolt olaraq Yoxdur).

Bütün digər isteğe bağlı və ya açar söz arqumentləri əsas oxucu nümunəsinə ötürülür.

Versiya 3.6-da dəyişdirildi: Geri qaytarılan sıralar artıq OrderedDict tiplidir.

Versiya 3.8-də dəyişdirildi: Geri qaytarılan sətirlər artıq dikt tiplidir.

Adi bir yazıçı kimi işləyən, lakin lüğətləri çıxış sətirlərinə uyğunlaşdıran bir obyekt yaradın. The sahə adları parametr, sözlükdə Writer () metoduna ötürülən dəyərlərin sənədlərə yazılma qaydasını təyin edən düymələr ardıcıllığıdır f. İstəyə görə restval parametri lüğətdə bir düymə olmadıqda yazılacaq dəyəri müəyyənləşdirir sahə adları. Yazıçıya ötürülən lüğətdə () metodunda tapılmayan bir açar var sahə adları, istəyə görə ekstraksiya parametr hansı tədbirin görüləcəyini göstərir. 'Yüksəlt' olaraq təyin olunarsa, varsayılan dəyər, bir ValueError qaldırılır. Əgər "laqeyd et" olaraq ayarlanırsa, lüğətdəki əlavə dəyərlər nəzərə alınmır. İstədiyiniz və ya açar söz mübahisələriniz əsas yazıçı instansiyasına ötürülür.

DictReader sinifindən fərqli olaraq sahə adları DictWriter sinifinin parametri isteğe bağlı deyil.

Dialekt sinfi, müəyyən bir oxucu və ya yazıçı nümunəsi üçün parametrləri təyin etmək üçün istifadə olunan atributlarına görə etibar edilən bir konteyner sinifidir.

Excel sinfi Excel tərəfindən yaradılan CSV sənədinin adi xüsusiyyətlərini müəyyənləşdirir. 'Excel' dialekt adı ilə qeydiyyata alınmışdır.

Excel_tab sinfi, Excel tərəfindən yaradılan TAB ilə ayrılmış bir sənədin adi xüsusiyyətlərini təyin edir. 'Excel-tab' dialekt adı ilə qeydiyyata alınmışdır.

Unix_dialect sinfi, UNIX sistemlərində yaradılan bir CSV sənədinin adi xüsusiyyətlərini müəyyənləşdirir, yəni ' n' xətt terminatoru kimi istifadə edərək bütün sahələrə sitat gətirir. 'Unix' ləhcə adı ilə qeydiyyata alınmışdır.

Sniffer sinfi bir CSV sənədinin formatını çıxarmaq üçün istifadə olunur.

Sniffer sinfi iki metod təqdim edir:

iyləmək ( nümunə, ayırıcılar = Yoxdur ) ¶

Verilənləri təhlil edin nümunə və tapılan parametrləri əks etdirən bir Dialekt alt sinifini qaytarın. İstəyə bağlıdırsa ayırıcılar parametr verilir, mümkün keçid ayırıcı simvolları olan bir sətir kimi yozulur.

Nümunə mətni təhlil edin (CSV formatında olduğu ehtimal olunur) və birinci sətir bir sıra sütun başlıqları kimi görünsə, True qayıdın.

CSV modulu aşağıdakı sabitləri müəyyənləşdirir:

Yazıçı obyektlərinə bütün sahələrdən sitat gətirməyi tapşırır.

Yazıçı obyektlərinə yalnız kimi xüsusi simvollar olan sahələrə sitat gətirməyi tapşırır ayırıcı, qiymət və ya içindəki hər hansı bir simvol lineterminator.

Bütün ədədi olmayan sahələrə sitat gətirməyi yazıçı obyektlərinə tapşırır.

Sitat gətirməyən bütün sahələri yazı tipinə çevirməyi oxucuya tapşırır sal.

Yazıçı obyektlərinə heç vaxt sahələrdən sitat gətirməməyi tapşırır. Cari olduqda ayırıcı əvvəlcədən cərəyan edən çıxış məlumatlarında meydana gəlir qaçaq xarakter. Əgər qaçaq təyin edilməyib, qaçmağı tələb edən hər hansı bir simvolla qarşılaşdıqda yazıçı Xəta qaldıracaq.

Oxucuya sitat simvollarının xüsusi işlənməməsini tapşırır.

CSV modulu aşağıdakı istisnanı müəyyənləşdirir:

Bir səhv aşkar edildikdə hər hansı bir funksiya tərəfindən qaldırılır.


Python ilə seçilmiş xüsusiyyətləri redaktə etmək mümkündürmü? - Coğrafi İnformasiya Sistemləri

"Versiya nəzarət sistemi" nədir?

Versiya idarəetmə sistemləri, kodda edilən dəyişiklikləri izləyərək fayllarda edilən dəyişikliklərin qeyd edilməsinə kömək edən bir proqram vasitəsi kateqoriyasıdır.

Versiya Nəzarət sistemi niyə bu qədər vacibdir?

Bildiyimiz kimi bir proqram məhsulu bir qrup inkişaf etdirici tərəfindən əməkdaşlıq edərək müxtəlif yerlərdə yerləşə bilər və hər biri müəyyən bir növ funksionallığa / xüsusiyyətə kömək edə bilər. Məhsula qatqı təmin etmək üçün mənbə kodunda dəyişikliklər etdilər (əlavə etmək və ya çıxarmaqla). Versiya idarəetmə sistemi, geliştirici qrupunun mənbə kodunda edilmiş bütün dəyişiklikləri və kimin etdiyi və hansı dəyişikliyin edildiyi kimi məlumatları səmərəli şəkildə əlaqələndirməsinə və idarə etməsinə (izləməsinə) kömək edən bir növ proqramdır. Dəyişikliklər edən və dəyişikliklər yaşıl olana kimi analiz edildiyi müddətdə dəyişikliklər orijinal qaynaq koduna birləşdirilməyən hər bir iştirakçı üçün ayrıca bir filial yaradılır və əsas mənbə koduna birləşdi. Yalnız qaynaq kodunu mütəşəkkil saxlayır, həm də inkişaf prosesini hamarlaşdıraraq məhsuldarlığı artırır.

Versiya nəzarət sisteminin üstünlükləri:

a) Səmərəli əməkdaşlıq təmin edərək layihənin inkişaf sürətini artırır,

b) Daha yaxşı ünsiyyət və yardım sayəsində işçilərin məhsuldarlığını, məhsul tədarükünü və bacarıqlarını sürətləndirir,

c) Hər kiçik dəyişikliyə izlənilə bilməklə səhv və çatışmazlıqları bu arada layihənin inkişafını azaltmaq,

d) Layihənin işçiləri və ya iştirakçıları, bunun sayəsində fərqli coğrafi mövqelərindən asılı olmayaraq hər yerdən töhfə verə bilərlər VCS,
e) Layihənin hər bir fərqli iştirakçısı üçün fərqli bir iş nüsxəsi saxlanılır və iş nüsxəsi təsdiqlənmədiyi təqdirdə əsas fayla birləşdirilmir. Ən populyar bir nümunə Git, Helix core, Microsoft TFS,

f) Hər hansı bir fəlakət və ya şərti bir vəziyyət olduğu zaman bərpa olunmasına kömək edir,

g) Dəyişikliklərin kim, nə, nə vaxt, nə üçün edildiyi barədə məlumat verir.

  • Anbar: Dəyişikliklər bazası kimi düşünmək olar. Layihənin bütün redaktələrini və tarixi versiyalarını (anlar) özündə cəmləşdirir.
  • İşin nüsxəsi (bəzən ödəmə adlanır): Layihədəki bütün sənədlərin şəxsi nüsxəsidir. Başqalarının işinə təsir göstərmədən bu nüsxədə düzəliş edə bilərsiniz və dəyişikliklər etdikdən sonra nəhayət dəyişikliklərinizi bir depoya köçürə bilərsiniz.

Versiya Nəzarət Sistemlərinin növləri:

  • Yerli Versiya İdarəetmə Sistemləri
  • Mərkəzləşdirilmiş Versiya İdarəetmə Sistemləri
  • Paylanmış Versiya Nəzarət Sistemləri

Yerli Versiya İdarəetmə Sistemləri: Ən sadə formalardan biridir və sənədlərdəki bütün dəyişiklikləri revizyon nəzarəti altında saxlayan bir verilənlər bazasına malikdir. RCS ən çox yayılmış VCS alətlərindən biridir. Yamaq dəstlərini (fayllar arasındakı fərqləri) diskdə xüsusi bir formatda saxlayır. Bütün yamaları əlavə edərək, hər hansı bir faylın zamanın istənilən nöqtəsində necə göründüyünü yenidən yarada bilər.

Mərkəzləşdirilmiş Versiya İdarəetmə Sistemləri: Mərkəzləşdirilmiş versiya idarəetmə sistemləri yalnız bir depo ehtiva edir və hər istifadəçi öz iş nüsxəsini alır. Dəyişikliklərinizi depoda əks etdirməyə borclu olmalısınız. Yeniləyərək başqalarının dəyişikliklərinizi görməsi mümkündür.

The fayda CVCS (Mərkəzləşdirilmiş Versiya İdarəetmə Sistemləri), hər kəsin layihədə etdikləri ilə əlaqədar müəyyən dərəcədə fikir verməklə yanaşı, inkişaf etdiricilər arasında əməkdaşlıq edir. İdarəçilərə kimin nə edə biləcəyinə dair incə nəzarət imkan verir.

Bəziləri var mənfi tərəflər DVS-in inkişafına səbəb olan. Ən gözə çarpan nöqtə, mərkəzləşdirilmiş anbarın həmin dövrdə aşağı düşməsi halında iş birliyi və versiyalanmış dəyişikliklərin qeyd edilməsi mümkün deyil. Mərkəzi verilənlər bazasının sabit diski zədələnirsə və müvafiq ehtiyat nüsxələri saxlanılmırsa? Tamamilə hər şeyi itirirsən.

Paylanmış Versiya Nəzarət Sistemləri: Paylanmış versiya nəzarət sistemlərində bir çox depo var. Hər bir istifadəçinin öz anbarı və iş nüsxəsi var. Yalnız dəyişikliklərinizi etmək, başqalarına dəyişikliklərinizə giriş imkanı verməyəcəkdir. Bunun səbəbi, əməyin yerli deposunuzdakı bu dəyişiklikləri əks etdirəcəyi və mərkəzi depoda görünməsi üçün onları basmalısınız. Eynilə, yenilədikdə, əvvəlcə bu dəyişiklikləri öz anbarınıza çəkmədən başqalarının dəyişikliklərini əldə etmirsiniz.

Ən populyar paylanmış versiya idarəetmə sistemləri Git, Mercurialdır. Bunlar tək uğursuzluq problemini aradan qaldırmağa kömək edir.


İdarəetmə İnformasiya Sistemləri üzrə bakalavrla nə edə bilərəm?

Rəqəmsal dünyamızda getdikcə daha çox müəssisə etibarlı və etibarlı məlumat idarəçiliyinə güvənir. Beləliklə, MIS bir neçə sənayedə çox vacibdir və müxtəlif gəlirli iş imkanları təklif edir.

MIS-də beş ümumi karyera yolu haqqında məlumat əldə etmək üçün oxuyun.

Karyera

Kompüter Sistemləri Analisti

Kompüter sistemləri analitikləri bir təşkilatın kompüter sistemlərinin səmərəli işləməsini təmin edirlər. Əsas vəzifələr arasında yeni texnologiyaların araşdırılması, yeni proqram təminatlarının quraşdırılması və quraşdırılması üçün xərc analizi hesabatlarının hazırlanması, sistemlərin sınaqdan keçirilməsi və yeni sistemlərin dizaynı və tətbiqi yer alır.

Orta illik əmək haqqı: $90,920*

İnformasiya Təhlükəsizliyi Analitiki

İnformasiya təhlükəsizliyi analitikləri bir təşkilatın məlumatlarını və şəbəkə sistemlərini qorumaq üçün proqram quraşdırır və istifadə edirlər. Əlavə tapşırıqlar arasında pozuntular üçün şəbəkələrin monitorinqi, zəif tərəflər üçün test sistemləri və texnologiya tendensiyalarının araşdırılması daxildir.

Orta illik əmək haqqı: $99,730*

Verilənlər bazası administratoru

Verilənlər bazası administratorları təşkilatlar üçün məlumatların saxlanması, idarə olunması və təhlükəsizliyi prosesinə nəzarət edir. Ayrıca sistemlərin səmərəli işləməsini təmin edir, dəyişikliklər yaradır və sınaqdan keçirir və istifadəçilər üçün sistem icazələrini idarə edirlər.

Orta illik əmək haqqı: $93,750*

Proqram inkişaf etdiriciləri istifadəçinin ehtiyaclarını ödəmək üçün proqram hazırlayır, sınaqdan keçirir və inkişaf etdirir. Əlavə tapşırıqlar proqramçılar qrupuna rəhbərlik etməyi, təkmilləşdirmələri tövsiyə etməyi və gündəlik baxımın aparılmasını əhatə edə bilər.

Orta illik əmək haqqı: $105,590*

Sistem mühəndisləri kompüter sistemlərini inkişaf etdirir və müştərinin ehtiyaclarını ödəmək üçün proqram təminatını təmin etmək üçün satıcılarla işləyirlər. Əlavə vəzifələrə dizayn dəyişikliklərinin qiymətləndirilməsi, dəyişikliklərə nəzarət sənədlərinin nəzərdən keçirilməsi və standart əməliyyat prosedurlarının qurulması daxildir.

Orta illik əmək haqqı: $79,640*

Mənbələr: Əmək Statistika Bürosu və PayScale


WxPython-a xoş gəlmisiniz!

Bu, son buraxılış üçün qeydlərdə qeyd edilməli idi, amma təəssüf ki, gəzdi və itdi. wxWidgets bir ölçüyə əlavə edilərkən ötürülən bayraqları doğrulayır və ölçüyə görə növlərinə uyğun bayraqlar olduqlarını təmin edir. Verilən bayraqların mənası yoxdursa, məsələn üfüqi bir qutu ölçüsündə üfiqi düzəltmə bayraqları istifadə edilərsə, wxAssertionError xətası qaldırılır.

EVT_STC_AUTOCOMP_SELECTION_CHANGE üçün itkin bağlayıcı düzəldildi. # 1613

DataViewModel.HasValue ləğv edilə bilər və bir maddənin və sütunun məlumat olub-olmaması barədə DataViewCtrl-ə məlumat verəcəkdir. HasValue False qaytararsa, həmin maddə / col üçün GetValue çağırılmayacaq. Bu, həqiqətən boş bir hüceyrə ilə boş bir simli olsa belə bir dəyəri olan bir ayırma imkanı verir. # 1600

UltimateListControl sinifində maddənin sürüklənməsinin bloklanmasına imkan verən bayraq əlavə edildi. PR # 1620

UltimateListControl PR # 1630-da bildiriş hadisələrinə sütun indeksini əlavə edin

UltimateListControl.GetScrollPos-a oriyentasiya parametri əlavə edildi. PR # 1632

wx.lib.agw.aui.AuiNotebook RemovePage () artıq silinmiş səhifəni gizlədir, buna görə başqa yerdə yenidən istifadə edildiyi təqdirdə yenidən göstərilməlidir. PR # 1668

Python altındakı bayt obyektlərini dəyişdirə biləcək problem həll edildi. PR # 1680

Bir AUI (agw versiyası) bölməsi bağlandıqda göndərilən wx.lib.agw.aui.EVT_AUI_PANE_CLOSE hadisəsi əlavə edildi (bağlandıqdan sonra bağlanmaq üzrə deyil, EVT_AUI_PANE_CLOSE göndərildikdə.) PR # 1628

Wx.DC metodları GetGraphicsContext və SetGraphicsContext məruz qaldı. Platformadan və DC tipindən asılı olaraq DC-nin tətbiqi üçün istifadə olunan wx.GraphicsContext ola bilər. Əgər belədirsə, GetGraphicsContext metodu ona giriş imkanı verir. Onu istifadə etməyə çalışmadan əvvəl qaytarma dəyərinin Yox olmadığını yoxladığınızdan əmin olun.

Wx.App.InitLocale metodunun tətbiqini sadələşdirdi. Daha çox məlumat üçün MigrationGuide-yə baxın.

Wx.lib.agw.aui.AUI_DOCKART_HINT_WINDOW_BORDER_COLOUR sabit əlavə edildi, beləliklə ipucu pəncərə sərhəd rəngi də temalı ola bilər.

Wx.lib.mixins.listCtrl.CheckListCtrlMixin artıq köhnəlmişdir, çünki wx.ListCtrl eyni işi yerinə yetirən yeni funksionallığa malikdir. Əslində metod adlarında bəzi istifadə hallarını azalda biləcək bəzi üst-üstə düşmələr var. CheckListCtrlMixin istifadəsini dayandırmaq və yalnız wx.ListBox funksiyasından istifadə etməyiniz tövsiyə olunur. Onu açmaq üçün EnableCheckBoxes-ə zəng etməlisiniz və bəzi hadisə işləyicilərini və ya həddindən artıq yüklənmiş metodları dəyişdirməyiniz lazım ola bilər.

wx.html2.WebView artıq Microsoft-un Edge brauzer komponentini arxa tərəf göstəricisi kimi istifadə edə bilər. Bu, Windows-da WebView widgetının imkanlarını yaxşılaşdırmalı və orijinal IE 11 arxa planına nisbətən digər platformalardakı WebViews ilə daha uyğun olmalıdır. Bu dəstəklənən istifadə son istifadəçinin kompüterinə Edge brauzerinin yeni versiyasının quraşdırılmasını tələb edir.

Wx.Image.ConvertToRegion metodu əlavə edildi. Bu, bir şəkildən bir wx.Region və müəyyən bir rəng və ya bir şəkil varsa maska ​​yaratmağa imkan verir. Bu, wxMac-da bir problemi həll etmək üçün edildi, ancaq səhv düzəldildikdən sonra da onu saxlamaq üçün kifayət qədər dəyərli görünür.

Wx.LogNull üçün çatışmayan kontekst meneceri metodları əlavə edildi. # 1842

ThumbnailCtrl xaricində istifadə edilə bilməsi üçün agw.ThumbnailCtrl-dən Yenilənmiş ScrolledThumbnail.

WxPython 4.1.0 buraxıldı

"Karantinadan qaçmaq"

wxPython 4.1.0 Artıq Əlavələrdə bəzi əlavə sənədlərlə PyPI-də mövcuddur

Bu buraxılışdan başlayaraq wxPython, wxPython üzərində qurulmuş və wxPython mənbə arxivinə daxil olan wxWidgets mənbə kodu üçün wxWidgets master filialını (versiya 3.1.x) izləməyə keçdi.

Bu, Python 2.7 üçün ikili sənədləri daxil edən son versiya olacaq. Kod, ehtimal ki, bir müddət Python 2.7 ilə hələ də tərtib ediləcək və uyğun olacaq, lakin bu şəkildə saxlanılması üçün heç bir səy göstərilməyəcəkdir.

Bu buraxılışda yeni və təkmilləşdirilmiş:

Demoya wx.Font.AddPrivateFont üçün bir nümunə əlavə edin.

Wx.TextCtrl-də OSXEnableAutomaticQuoteSubstution, OSXEnableAutomaticDashSubstution və OSXDisableAllSmartSubstitutions metodları üçün sarmalayıcılar əlavə edildi. Wx.App-da OSXEnableAutomaticTabbing əlavə edildi.

Wx.ColourDialogEvent, wx.DCTextBgColourChanger, wx.DCTextBgModeChanger, wx.grid.GridCellDateRenderer, wx.grid.GridCellDateEditor, wx.SystemAppearance, və s. Əlavə edildi.

WxWidgets və wxPythondakı köhnəlmiş maddələrin bir çoxu silinir və ya silinir. Kodunuzu son bir 4.0.x buraxılışında xəbərdarlıq aktivləşdirildiyi üçün sınadığınızdan əmin olun ki, hansı sinif, metod və ya funksiya zənglərini dəyişdirməli olduğunuzu görə biləsiniz.

Wx.lib.calendar-da hata düzeltmeleri: ay hüdudlarında açar naviqasiya artıq mümkündür açar naviqasiya indi tarixi təyin edir və EVT_CALENDAR hadisə qurucusu API'leri artıq tarixi # 1230 olaraq düzgün təyin edir.

GTK3 portunda işləyərkən widgetları vurğulamaq üçün Widget Təftiş Alətində wx.Overlay istifadə etməyə keçin.

Etiket redaktorunun əbədi olaraq qala biləcəyi wx.lib.agw.customtreectrl problemi düzəldildi # 1235.

Onu dəstəkləyən siniflərə EnableSystemTheme metodu ilə aşılanır. Bu, wx.ListCtrl, wx.TreeCtrl və wx.dataview.DataViewCtrl kimi yerli widget'lar üçün Windows-da standart sistem temasını söndürmək üçün istifadə edilə bilər. Digər platformalarda heç bir təsiri yoxdur.

Wx.WS_EX_VALIDATE_RECURSIVELY genişləndirilmiş stil bayrağı köhnəlmişdir, çünki indi standart (və yalnız) davranışdır. Stil bayrağı uyğunluq üçün yenidən wxPython-a əlavə edildi, lakin sıfır dəyəri ilə. Davranışda heç bir dəyişiklik olmadan kodunuzda istifadə etməyi dayandırmaq olar. # 1278

Bir wx istifadə edərkən bəzən bir qəzanı düzəldin, əvvəlcə DCOverlay'ın məhv olmasını təmin etmək üçün wx.DCOverlay'ın DC-yə istinad etməsinə icazə verin. PR # 1301

Docker şəkilləri ilə müxtəlif Linux dağıtımları üçün wxPython qurmaq üçün istifadə olunan Vagrant VM-ləri dəyişdirdi.

Wx.adv.BitmapComboBox # 1307-də ​​bəzi itkin metodları əlavə edin

SVG (Ölçeklenebilir Vektör Grafikləri) sənədlərini təhlil etmək üçün kod və wxPython ilə inteqrasiya üçün kodu olan wx.svg paketi əlavə edildi. SVG-ni keyfiyyət itkisi olmadan istənilən ölçüdə bir wx.Bitmap şəklində rasterləşdirə bilər və eyni zamanda GC-nin rəsm primitivlərindən istifadə edərək SVG-ni birbaşa wx.GraphicsContext-ə çevirə bilər. PR # 1323

Python'u yerləşdirən bir C ++ wxWidgets tətbiqetməsindən wxPython'un necə istifadə ediləcəyini göstərən Classic-dən yerləşdirmə nümunəsini köçürdü. PR # 1353

Wx.GetApp () öz göstəricisini qorumaq yerinə wxWidgets 'qlobal wxApp nümunəsini istifadə etmək üçün düzəldildi. Bu şəkildə, wxApp C ++ kodu ilə yaradılarsa, wxPython hələ də ona giriş əldə edə biləcəkdir. # 1126

Wx.ActivityIndicator sinfi üçün sarmalayıcılar əlavə edildi.

Wx.CollapsibleHeaderCtrl sinfi üçün sarğılar əlavə edildi.

Kaydırma çubuklarının göstərilməsi və istifadəsi ətrafında PlotCanvasdakı problemlər həll edildi. # 1428

Wx.msw.CHMHelpController və eyni zamanda platforma üçün ən yaxşı Yardım Denetleyicisi nümunəsini yaradan bir wx.HelpController zavod funksiyası əlavə edildi. # 1536

Wx.adv.GenericAnimationCtrl əlavə olundu ki, animasiya dərslərinin ümumi versiyası yerli versiyaya sahib platformalarda da istifadə oluna bilər. Hər iki növ animasiyanı dəstəkləmək üçün daxili dəyişikliklərə görə, Animasiya obyektlərinin necə yaradıldığına dair bəzi API dəyişikliklərinə diqqət yetirin. 1579 saylı müxtəlif istifadə qaydaları üçün demoda AnimationCtrl.py nümunəsinə baxın

Wx.grid.GridBlockCoords, wx.grid.GridBlocks və wx.grid.GridBlockDiffResult sinifləri üçün sarmalayıcılar əlavə edildi və wx.grid.Grid sinfində əlaqəli yeni metodlar əlavə edildi. Bunlar, seçilmiş hüceyrələrin blokları ilə qarşılıqlı əlaqə qurmağın yeni bir yolunu təmin edir, o cümlədən wx.grid.GridBlocks-da iterator interfeysi də böyük seçim qruplarını işləmək üçün daha səmərəli (vaxt və yaddaş) bir yol olmalıdır.

WxPython 4.0.7.post2 çıxdı

"QTKitə, ya da QTKitə deyil."

wxPython 4.0.7.post2 artıq Əlavələrdə bəzi əlavə sənədlərlə PyPI-də mövcuddur

Bu buraxılış sonrası, macOS-da bir wxWidgets konfiqurasiya seçimini dəyişdirir, beləliklə QTKit əvəzinə AVFoundation istifadə etmək məcburiyyətində qalacaq. Bu, wxMediaCtrl-in QTKit üçün bütün dəstəyin silindiyi macOS 10.15+ üzərində işləməsini təmin edir.


Tam xüsusiyyətli ayıklama

Visual Studio'nun güclü cəhətlərindən biri güclü ayıklayıcıdır. Xüsusilə Python üçün Visual Studio, Python / C ++ qarışıq modda ayıklama, Linuxda uzaqdan ayıklama, daxilində ayıklama daxildir İnteraktiv pəncərə və Python vahid testlərində ayıklama.

Visual Studio 2019-da, bir Visual Studio layihə faylı olmadan kodu çalıştırabilir və ayıklayabilirsiniz. Nümunə üçün Quickstart: Python kodunu bir qovluqda açın və çalıştırın.


Python üçün DB-API (SQL-API)

Python DB-API, hər hansı bir verilənlər bazası mühərrikinə daxil olmaq üçün Python skriptlərini yazmağınıza imkan verən hər hansı bir verilənlər bazası mühərrikindən asılı deyil. MySQL üçün Python DB API tətbiqi MySQLdb-dir. PostgreSQL üçün psycopg, PyGresQL və pyPgSQL modullarını dəstəkləyir. Oracle üçün DB-API tətbiqetmələri dc_oracle2 və cx_oracledır. Pydb2, DB2 üçün DB-API tətbiqidir. Python & # 8217s DB-API, keçid obyektlərindən, imlec obyektlərindən, standart istisnalardan və bəzi digər modul məzmunlarından ibarətdir, bunların hamısını müzakirə edəcəyik.


6 Cavablar 6

Cavabımın iki hissəsi var:

Birincisi, təhdid modelinizi qəbul etsəniz, müştəri tərəfindəki çərəzlərin məruz qalmasından narahat olmayın, server tərəfində bir nonce yarada və saxlaya bilər, istifadəçi adı və digər məlumatlarla (məsələn, müştəri ipi, kompüter adı, zaman damgası, bənzər şeylər) qarışıqda saxlaya və cookies-ə göndərə bilərsiniz. Qeyri-məhdudiyyət müddəti ilə birlikdə verilənlər bazasında saxlanılmalı və çərəz qayıtdıqdan sonra hər ikisi yoxlanılmalıdır.
Bu, yalnız bir "xatırlama" çərəzi olmalıdır, sessiya çərəzi deyil - yəni bu çərəni sessiyasız aldığınız zaman yeni, adi oturum çərəzini yenidən buraxın. Bundan əlavə, sessiya çərəzi kimi, bunun yalnız https üzərindən və etibarlı və httpOnly atributlarından istifadə edərək çatdırılmalı və əlbəttə ki, çərəzin düzgün miqyas alması və s.

İkincisi, yadda qalan istifadəçilər üçün (ehtimal ki, həssaslıqdan asılı olaraq) müəyyən həssas əməliyyatlar üçün yenidən doğrulama prosesini tətbiq etməlisiniz. Yəni, bəzən hər halda parollarını yenidən daxil etmələri lazım olacaq, lakin nadir hallarda və yalnız həssas əməliyyatlar üçün. Bu, CSRF və paylaşılan masa üstü ifşası kimi hücumların qarşısını almaq üçündür.

Təhlükəsiz girişlər və "məni xatırla" onay qutuları haqqında çox uzun yazdım. Qəbul edilmiş cavab səhv deyil, amma bunun bir cəhətdən ehtiyac duyulduğundan bir qədər daha mürəkkəb olduğunu və bir az daha mürəkkəbliyin lazım olduğu bir sahəni laqeyd yanaşdığını iddia edərdim.

server tərəfində bir nonce yaradın və saxla, istifadəçi adı və digər məlumatlarla qarışdırın (məsələn, müştəri ipi, kompüter adı, zaman damgası, oxşar şeylər) və onu çerezə göndərin. Qeyri-məhdudiyyət müddəti ilə birlikdə verilənlər bazasında saxlanılmalı və çərəz qayıtdıqdan sonra hər ikisi yoxlanılmalıdır.

Beləliklə, müştəriyə heç bir məlumat verməyən bir tətbiq kimi görünə bilər.

Buradakı açıq məhdudiyyət, IP adresiniz (və ya digər məlumatlar) dəyişərsə, çerezinizin faydasız olmasıdır. Bəziləri bunu yaxşı bir şey kimi qəbul edə bilər, Tor istifadəçiləri üçün lazımlı bir şəkildə düşmən olduğunu düşünürəm.

Yuxarıdakı sitatı, miskin bir adamın JSON Veb işarəsi kimi fərqli bir şey demək üçün mütləq şərh edə bilərsiniz. Bununla birlikdə, HTTP çərəzləri hər domen üçün 4 KiB ilə məhdudlaşır. Məkan yüksək səviyyədədir.

Başqa bir problem: verilənlər bazanızın sorğusu tətbiqiniz barədə nə qədər məlumat sızdırır? (Bəli, yan kanallardan danışıram.)


Python Proqramlaşdırma dilinin üstünlükləri və dezavantajları

Python, kod oxunaqlılığına diqqət yetirən yüksək səviyyəli, şərh edilmiş və ümumi məqsədli dinamik bir proqramlaşdırma dilidir. Python-dakı sintaksis, proqramçılara Java və ya C ++ ilə müqayisədə daha az addımda kodlaşdırma aparmağa kömək edir. Geliştirici Guido Van Rossum tərəfindən 1991-ci ildə qurulan dilin proqramlaşdırılması asan və əyləncəlidir. Python çoxsaylı proqramlaşdırma paradiqmalarına görə daha böyük təşkilatlarda geniş istifadə olunur. Bunlar ümumiyyətlə imperativ və obyekt yönümlü funksional proqramlaşdırmanı əhatə edir. Avtomatik yaddaş idarəetməsi və dinamik xüsusiyyətləri olan hərtərəfli və böyük bir standart kitabxanaya malikdir.

Niyə şirkətlər Pythona üstünlük verirlər?

Pyt h on, C, C ++ və Java kimi digər proqramlaşdırma dilləri ilə müqayisədə son illərdə ən yüksək qrafiklərə sahibdir və proqramçılar tərəfindən geniş istifadə olunur. Dil bir çox əlavə xüsusiyyətləri təqdim edildiyi üçün 25 il əvvəl buraxıldığı gündən bəri ciddi bir dəyişikliyə məruz qaldı. Python 1.0, Modula-3 modul sisteminə sahib idi və müxtəlif işləmə vasitələri ilə Amoeba Əməliyyat Sistemi ilə qarşılıqlı əlaqə qurdu. 2000-ci ildə təqdim olunan Python 2.0, zibil toplayıcı və Unicode Dəstək xüsusiyyətlərinə sahib idi. 2008-ci ildə təqdim olunan Python 3.0, təkrarlanan modul və konstruksiyaların qarşısını alan konstruktiv bir dizayna sahib idi. Əlavə xüsusiyyətləri ilə, indi şirkətlər Python 3.5 istifadə edir.

Proqram inkişaf etdirən şirkətlər, çox yönlü xüsusiyyətlərinə və daha az proqramlaşdırma kodlarına görə Python dilinə üstünlük verirlər. Proqramçıların təxminən 14% -i UNIX, Linux, Windows və Mac OS kimi əməliyyat sistemlərində istifadə edirlər. Böyük şirkətlərin proqramçıları Python-dan istifadə edirlər, çünki proqram inkişafında özünə bənzər xüsusiyyətlərə sahib bir işarə yaratmışdır.

  • İnteraktiv
  • Təfsir etdi
  • Modul
  • Dinamik
  • Obyekt yönümlüdür
  • Portativ
  • Yüksək səviyyə
  • C ++ və amp C-də genişlənir

Python-un üstünlükləri və ya üstünlükləri

Python dili, oyun, veb çərçivə və tətbiqetmələr, dil inkişaf etdirmə, prototip hazırlama, qrafik dizayn tətbiqetmələri və s. Kimi proqram inkişaf şirkətlərində müxtəlif tətbiqetmələrə malikdir. Bu, sənayedə istifadə olunan digər proqramlaşdırma dillərinə nisbətən daha yüksək bir dil təmin edir. Bəzi üstünlükləri aşağıdakılardır:

Simli əməliyyatlar, İnternet, veb xidmət alətləri, əməliyyat sistemi interfeysləri və protokollar kimi sahələri əhatə edən böyük standart kitabxanalar təmin edir. Yüksək istifadə olunan proqramlaşdırma tapşırıqlarının əksəriyyəti artıq Python-da yazılacaq kodların uzunluğunu məhdudlaşdıran bir sənəddir.

Python, COM və ya COBRA komponentlərini çağıraraq veb xidmətlərini inkişaf etdirməyi asanlaşdıran Enterprise Application Integration-u birləşdirir. Birbaşa C, C ++ və ya Jython vasitəsi ilə Java-dan zəng etdikləri üçün güclü idarəetmə qabiliyyətlərinə malikdir. Python eyni zamanda bayt kodu ilə bütün müasir əməliyyat sistemlərində işləyə biləcəyi üçün XML və digər formatlaşdırma dillərini işləyir.

Dil Java, VB, Perl, C, C ++ və C # kimi dillərdən istifadə edərkən proqramçı məhsuldarlığını iki-on qat artıran geniş dəstək kitabxanalarına və təmiz obyekt yönümlü dizaynlara malikdir.

Güclü proses inteqrasiya xüsusiyyətləri ilə vahid test çərçivəsi və inkişaf etmiş nəzarət imkanları əksər tətbiqetmələrin sürətinin artmasına və tətbiqlərin məhsuldarlığına kömək edir. Ölçeklenebilir çox protokollu şəbəkə tətbiqetmələri qurmaq üçün əla bir seçimdir.

Python'un məhdudiyyətləri və ya dezavantajları

Python müxtəlif üstünlüklü xüsusiyyətlərə malikdir və proqramçılar bu dili digər proqramlaşdırma dillərindən üstün tuturlar, çünki öyrənmək və kodlaşdırmaq da asandır. Bununla birlikdə, bu dil Enterprise Development Shops-un daxil olduğu bəzi hesablama arenalarında hələ də yerini tutmamışdır. Bu səbəbdən bu dil bəzi müəssisə həll yollarını həll edə bilməz və məhdudiyyətlərə aşağıdakılar daxildir:

Python həvəskarları onun xüsusiyyətlərinə və geniş kitabxanalarına o qədər alışmış olurlar ki, digər proqramlaşdırma dillərini öyrənmək və ya işləmək problemi ilə qarşılaşırlar. Python mütəxəssisləri tökmə “dəyərlər” və ya dəyişkən “növlər” elan edilməsini, buruq mötərizələr və ya yarım nöqtəli nöqtələrin əlavə edilməsinin sintaktik tələblərini ağır bir vəzifə kimi görə bilərlər.

Python bir çox masa üstü və server platformasında iştirak etdi, lakin mobil hesablama üçün zəif bir dil olaraq görülür. Carbonnelle kimi içəridə çox az mobil tətbiqetmənin qurulmasının səbəbi budur.

Python tərtibçi yerinə tərcüməçinin köməyi ilə icra edir, bu da yavaşlamasına səbəb olur, çünki tərtib və icra normal işləməsinə kömək edir. Digər tərəfdən, bir çox veb tətbiqetmə üçün də sürətli olduğu görülə bilər.

Python dili dinamik olaraq yazılır, buna görə bəzi Python inkişaf etdiriciləri tərəfindən bildirilən bir çox dizayn məhdudiyyətlərinə malikdir. Hətta bunun daha çox sınaq müddəti tələb etdiyi və tətbiqlər nəhayət işə salındıqda səhvlərin ortaya çıxdığı görülür.

JDBC və ODBC kimi populyar texnologiyalarla müqayisədə Python verilənlər bazasına giriş qatının az inkişaf etmiş və ibtidai olduğu aşkar edilmişdir. Bununla birlikdə, mürəkkəb miras məlumatlarının hamar bir şəkildə qarşılıqlı təsirinə ehtiyacı olan müəssisələrdə tətbiq edilə bilməz.

Python möhkəm bir proqramlaşdırma dilidir və kod xətlərinin asan bir istifadəsini təmin edir, baxım mükəmməl bir şəkildə həll edilə bilər və ayıklama da asanlıqla edilə bilər. Kompüter nəhəngi Google-un rəsmi proqramlaşdırma dillərindən birinə çevrilməsi ilə dünya miqyasında əhəmiyyət qazandı.


Videoya baxın: SAJ vert de rage quand lexpress lui rappelle son contrat (Oktyabr 2021).