3.6% sa mga repositoryo sa Python nga gisulayan adunay nawala nga mga comma error

Ang mga resulta sa usa ka pagtuon sa kahuyang sa Python code ngadto sa mga sayop nga may kalabutan sa sayop nga paggamit sa mga koma sa code gimantala. Ang mga problema gipahinabo sa kamatuoran nga kung mag-enumerate, awtomatik nga gidugtong sa Python ang mga kuwerdas sa lista kung wala kini gibulag sa usa ka comma, ug gitratar usab ang kantidad ingon usa ka tuple kung ang kantidad gisundan sa usa ka comma. Human sa paghimo sa usa ka automated analysis sa 666 GitHub repository nga adunay Python code, ang mga tigdukiduki nakaila sa posibleng mga isyu sa comma sa 5% sa mga proyekto nga gitun-an.

Ang dugang nga manual inspeksyon nagpakita nga ang tinuod nga mga sayop anaa lamang sa 24 ka mga repositoryo (3.6%), ug ang nahibiling 1.4% mga bakak nga positibo (pananglitan, ang usa ka comma mahimong tinuyo nga dili iapil sa taliwala sa mga linya aron sa paghiusa sa multi-line file paths, long hash, HTML mga bloke o mga ekspresyon sa SQL). Mamatikdan nga taliwala sa 24 nga mga repository nga adunay tinuod nga mga sayup mao ang daghang mga proyekto sama sa Tensorflow, Google V8, Sentry, Pydata xarray, rapidpro, django-colorfield ug django-helpdesk. Bisan pa, ang mga problema sa mga koma dili espesipiko sa Python ug kanunay nga makita sa mga proyekto sa C/C++ (mga pananglitan sa bag-ong mga pag-ayo mao ang LLVM, Mono, Tensorflow).

Ang mga nag-unang matang sa mga sayop nga gitun-an:

  • Aksidente nga nawala ang usa ka comma sa mga lista, tuple, ug set, hinungdan nga ang mga kuwerdas madugtong imbis nga hubaron nga lahi nga mga kantidad. Pananglitan, sa Sentry, usa sa mga pagsulay nga wala’y comma tali sa mga string nga "release" ug "discover" sa lista, nga miresulta sa pagsulay sa usa ka wala'y "/releasesdiscover" nga handler, imbes nga susihon ang "/releases" ug " /discover" nga gilain.
    3.6% sa mga repositoryo sa Python nga gisulayan adunay nawala nga mga comma error

    Ang laing pananglitan mao nga ang usa ka nawala nga comma sa rapidpro hinungdan sa duha ka lain-laing mga lagda nga gihiusa sa linya 572:

    3.6% sa mga repositoryo sa Python nga gisulayan adunay nawala nga mga comma error

  • Usa ka nawala nga comma sa katapusan sa usa ka elemento nga kahulugan sa tuple, hinungdan nga ang buluhaton magbutang usa ka regular nga tipo kaysa usa ka tuple. Pananglitan, ang ekspresyon nga "values ​​​​= (1,)" moresulta sa usa ka assignment sa usa ka variable sa usa ka tuple sa usa ka elemento, apan ang "values ​​​​= (1)" moresulta sa usa ka assignment sa usa ka integer type. Ang mga parentesis niini nga mga buluhaton dili makaapekto sa tipo nga kahulugan ug opsyonal, ug ang presensya sa usa ka tuple gitino sa parser base lamang sa presensya sa mga koma. REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated' # hatagan ug string imbes nga tuple. ) }
  • Ang kaatbang nga sitwasyon mao ang dugang nga mga koma atol sa assignment. Kung ang usa ka comma wala tuyoa nga nabilin sa katapusan sa usa ka assignment, usa ka tuple ang i-assign isip value imbes sa normal nga tipo (pananglitan, kung ang "value = 1," gipiho imbes nga "value = 1").

Source: opennet.ru

Idugang sa usa ka comment