Share via


Visual Studio'da Python kodunu yeniden düzenleme

Mevcut kodu yeniden kullanmak ve kodu yenilemek geliştiriciler için yaygın görevlerdir. Var olan kodu başka bir amaç için yeniden düzenlemek ve tüm yeni kodları yazmayarak zaman kazanmak isteyebilirsiniz. Kullanılmayan öğeleri kaldırmak veya son sürümlerle güncel olmaları için içeri aktarmaları ve yöntemleri yenilemek için kodunuzu temizlemek isteyebilirsiniz.

Visual Studio, Python kaynak kodunuzu otomatik olarak dönüştürmenize ve temizlemenize yardımcı olacak çeşitli komutlar sağlar:

Önkoşullar

  • Visual Studio. Ürünü yüklemek için Visual Studio'yu Yükleme'deki adımları izleyin.
  • Mevcut koda sahip bir Python kod projesine erişim.

Sınıfı, yöntemi veya değişkeni yeniden adlandırma

Sınıf, yöntem veya değişken gibi belirli bir tanımlayıcının adını değiştirmek için Yeniden Adlandır komutunu kullanabilirsiniz. Visual Studio, tanımlayıcının tüm örneklerinin veya yalnızca belirttiğiniz belirli örneklerin güncelleştirilmesini destekler.

Aşağıdaki adımlarda kodunuzda Yeniden Adlandır komutunun nasıl kullanılacağı gösterilmektedir.

  1. Kodunuzda, yeniden adlandırmak istediğiniz tanımlayıcıya sağ tıklayın ve Yeniden Adlandır'ı seçin. Ayrıca şapka işaretini bir tanımlayıcıya yerleştirip menüden Yeniden Düzenleme Yeniden Düzenlemeyi>Düzenle'yi> seçebilir veya F2 klavye kısayolunu kullanabilirsiniz.

  2. Yeniden Adlandır iletişim kutusunda tanımlayıcının yeni adını girin ve Tamam'ı seçin:

    Screenshot that shows how to specify a different name for an identifier in Visual Studio 2019.

  3. Sonraki iletişim kutusunda, kodunuzda yeni adı kullanması gereken dosyaları ve örnekleri seçin. Belirli bir değişikliğin önizlemesini görüntülemek için tek bir örnek seçebilirsiniz:

    Screenshot that shows how to apply the new name to specific instances of an identifier and preview the changes in Visual Studio 2019.

  4. Kaynak kod dosyalarınızda değişiklik yapmak için Uygula'yı seçin.

  1. Kodunuzda, yeniden adlandırmak istediğiniz tanımlayıcıya sağ tıklayın ve Yeniden Adlandır'ı seçin. Ayrıca şapka işaretini bir tanımlayıcıya yerleştirebilir ve menüden Yeniden Düzenleme Yeniden Düzenlemeyi>Düzenle'yi> seçebilir veya Ctrl+R klavye kısayolunu kullanabilirsiniz.

  2. Yeniden Adlandır iletişim kutusunda tanımlayıcının yeni adını yazın ve ardından Enter tuşuna basın:

    Screenshot that shows how to specify a different name for an identifier in Visual Studio 2022.

İçeri aktarma deyimi ekleme

Kodunuzda tanımları veya destekleyici tür bilgilerini eksik tanımlayıcılar varsa, Visual Studio sorunu düzeltmenize yardımcı olabilir. Şapka işaretini bilgi olmayan bir tanımlayıcıya yerleştirdiğinizde, Visual Studio kodun solunda bir akıllı etiket (ampul) gösterir. etiketi, ilgili tanımlayıcı için gerekli import veya from ... import deyimleri eklemeye yönelik komutları listeler.

Aşağıdaki adımlar, kodunuzda içeri aktarmalar eklemek için akıllı etiketle nasıl çalışılacağını gösterir.

  1. Kodunuzda, şapka işaretini Visual Studio'nun akıllı etiketi (ampul) görüntülediği bir tanımlayıcıya yerleştirin. Bu örnekte, matematik modülü çağrısı için akıllı etiket görüntülenir:

    Screenshot that shows the smart tag for an identifier that needs an import statement added in Visual Studio 2019.

    Screenshot that shows the smart tag for an identifier that needs an import statement added in Visual Studio 2022.

  2. Akıllı etiket menüsünde gerekli modülü eklemek veya kod dosyanıza bilgi yazmak için komutunu seçin. Bu örnekte deyimini ekleme import math komutu seçilidir.

    Visual Studio, geçerli projede ve standart kitaplıkta üst düzey paketler ve modüller için tamamlamalar sunar import . Visual Studio ayrıca alt modüller, alt paketler ve modül üyeleri için tamamlamalar sunar from ... import . Tamamlamalar işlevler, sınıflar veya dışarı aktarılan verileri içerir.

  3. Bir seçeneği seçtikten sonra dosyanızda beklenen değişikliğin yapıldığını onaylayın.

    Visual Studio, diğer içeri aktarmalardan sonra kod dosyanızın en üstüne deyimini veya aynı modül zaten içeri aktarılmışsa var olan from ... import bir deyime eklerimport. Bu örnekte deyimi, import math diğer içeri aktarma işlemlerinden sonra dosyanın en üstüne eklenir:

    Screenshot that shows the import statement added after running the command from the smart tag in Visual Studio 2019.

    Screenshot that shows the import statement added after running the command from the smart tag in Visual Studio 2022.

Visual Studio, modülde tanımlanmayan üyeleri filtrelemeye çalışır. Bir örnek, içeri aktarma modülünün alt öğesi olmayan başka bir modüle içeri aktarılan modüldür. Birçok modülde import sys yerine from xyz import sysdeyimi kullanılır. Modüllerde modülü dışlayan sys bir __all__ üye eksik olsa bile modülü diğer modüllerden içeri aktarma işleminin sys tamamlandığını görmezsiniz.

Benzer şekilde, Visual Studio diğer modüllerden veya yerleşik ad alanından içeri aktarılan işlevleri filtreler. Bir modül işlevi modülden sys içeri aktarırsasettrace, teoride işlevi bu modülden içeri aktarabilirsiniz. Ancak, en iyi yaklaşım deyimini import settrace from sys doğrudan kullanmaktır, bu nedenle Visual Studio bu deyimi özel olarak sunar.

Son olarak, bir modülün normalde dışlandığını, ancak modüldeki bir değerle atanmış bir ad gibi başka değerler içerdiğini varsayalım. Visual Studio yine de içeri aktarmayı dışlar. Bu davranış, başka bir modül tanımladığından değerin dışarı aktarılmaması gerektiğini varsayar. Başka bir atama da dışarı aktarılmayan sahte bir değer olabilir.

Kullanılmayan içeri aktarmaları kaldırma

Kod yazdığınızda, import hiç kullanılmayan modüllerin deyimlerini kolayca bulabilirsiniz. Visual Studio kodunuzu analiz ettiğinden, içeri aktarılan adın deyim gerçekleştikten sonra kapsam içinde kullanılıp kullanılmadığına bakarak bir import deyimin gerekli olup olmadığını otomatik olarak belirleyebilir.

Aşağıdaki adımlarda kodunuzda kullanılmayan içeri aktarmaların nasıl kaldırılacağı gösterilmektedir.

  1. Düzenleyicide herhangi bir yere sağ tıklayın ve İçeri Aktarmaları Kaldır'ı seçin. İçeri aktarmayı Tüm Kapsamlardan veya yalnızca Geçerli Kapsam'dan kaldırabilirsiniz.

    Screenshot that shows how to access the Remove Imports menu in Visual Studio 2019.

    Visual Studio, kodunuzda kullanılmayan modüller olup olmadığını belirler ve ilgili import deyimleri kaldırır.

  2. Bir seçeneği seçtikten sonra, dosyanızda beklenen değişikliklerin yapıldığını onaylayın. Bu örnekte Visual Studio kullanılmayan üç modülü kaldırır: binascii, dizi ve glob.

    Screenshot that shows the results of using the Remove Imports command to remove unused modules from the code in Visual Studio 2019.

  1. Kodunuzda, şapka işaretini Visual Studio'nun akıllı etiketi (ampul) görüntülediği bir import deyimin üzerine yerleştirin. Bu örnekte, kullanılmayan binascii, dizi ve glob modülleri için akıllı etiket görüntülenir:

    Screenshot that shows how to access options to remove unused imports in Visual Studio 2022.

  2. Yalnızca seçili modülü kaldırmak için Kullanılmayan tüm içeri aktarmaları kaldır veya Kullanılmayan içeri aktarmayı kaldır seçeneğini belirleyin.

  3. Bir seçeneği seçtikten sonra, dosyanızda değişikliklerin yapıldığını onaylayın. Bu örnekte Visual Studio kullanılmayan üç modülü kaldırır: binascii, dizi ve glob.

    Screenshot that shows the results of using the Remove all unused imports command in Visual Studio 2022.

Yeniden düzenleme komutlarını kullanırken dikkat edilmesi gerekenler

Yeniden düzenleme komutlarını kullanmadan önce aşağıdaki noktaları gözden geçirin.

  • Yeniden düzenleme komutunu çalıştırdıktan sonra, Geri Almayı Düzenle>komutunu kullanarak değişiklikleri geri alabilirsiniz. Yeniden Adlandır komutu bir Önizleme özelliği sunar, böylece değişiklikleri uygulanmadan önce görebilirsiniz.

  • Visual Studio, kodunuzda denetim akışını hesaba eklemez. Kodda destekleyici tanım var olmadan önce bir tanımlayıcı kullanırsanız (örneğin, bir import deyim) Visual Studio yine de tanımlayıcıyı kullanılan şekilde işler. Visual Studio, siz çağrılar ve atamalar yapmadan önce tanımlayıcılar için destekleyici tanımları bulmayı bekler.

  • Visual Studio tüm from __future__ içeri aktarma deyimlerini yoksayar. Bu deyimler, bir sınıf tanımının içinde veya deyimleri kullanılarak from ... import * gerçekleştirilen içeri aktarmalardır.