Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah anda tahu lima modul Python yang berguna tetapi kurang dikenali ini?

Adakah anda tahu lima modul Python yang berguna tetapi kurang dikenali ini?

王林
王林ke hadapan
2023-04-13 10:01:051132semak imbas

Adakah anda tahu lima modul Python yang berguna tetapi kurang dikenali ini?

Teks

Pustaka standard Python mempunyai lebih 200 modul yang boleh diimport dan digunakan oleh pengaturcara dalam program mereka. Walaupun rata-rata pengaturcara akan mempunyai sedikit pengalaman dengan kebanyakan modul ini, kemungkinan besar terdapat beberapa modul berguna yang mereka masih tidak sedar.

Saya dapati banyak modul ini mengandungi fungsi yang sangat berguna dalam pelbagai bidang. Membandingkan set data, bekerjasama dengan fungsi lain dan pemprosesan audio semuanya boleh diautomasikan hanya menggunakan Python.

Jadi, saya telah menyusun senarai pendek modul Python yang mungkin anda tidak tahu dan telah memberikan penjelasan yang sewajarnya kepada beberapa modul ini supaya anda boleh memahami dan menggunakannya pada masa hadapan.

Semua modul ini mempunyai fungsi dan kelas yang berbeza. Artikel ini mengandungi beberapa fungsi dan kelas yang kurang dikenali, jadi walaupun anda pernah mendengar tentang modul ini, anda mungkin tidak mengetahui beberapa aspek dan kegunaannya.

1. difflib

difflib ialah modul Python yang memfokuskan pada membandingkan set data (terutama rentetan). Untuk mendapatkan idea konkrit tentang beberapa perkara yang boleh anda lakukan dengan modul ini, mari kita periksa beberapa fungsi yang paling biasa.

SequenceMatcher

SequenceMatcher ialah fungsi yang membandingkan dua rentetan dan mengembalikan data berdasarkan persamaannya. Dengan menggunakan nisbah() kita akan dapat mengukur persamaan ini dari segi nisbah/peratusan.

Sintaks:

SequenceMatcher(None, string1, string2)

Contoh mudah berikut menunjukkan fungsi fungsi ini:

from difflib import SequenceMatcher

phrase1 = "Tandrew loves Trees."

phrase2 = "Tandrew loves to mount Trees."

similarity = SequenceMatcher(None, phrase1, phrase2)

print(similarity.ratio())

# Output: 0.8163265306122449

get_close_matches

Seterusnya ialah get_close_matches, fungsi ini mengembalikan padanan terdekat kepada rentetan yang dihantar sebagai hujah.

Sintaks:

get_close_matches(word, possibilities, result_limit, min_similarity)

Berikut ialah penjelasan tentang parameter yang mungkin mengelirukan ini:

  • perkataan ialah perkataan sasaran yang fungsi akan tengok .
  • kemungkinan ialah tatasusunan yang mengandungi padanan yang fungsi akan cari dan cari padanan terdekat.
  • result_limit ialah had pada bilangan hasil yang dikembalikan (pilihan).
  • min_similarity ialah persamaan minimum yang perlu ada dua perkataan untuk dianggap sebagai nilai pulangan oleh fungsi (pilihan).

Berikut ialah contoh penggunaannya:

from difflib import get_close_matches
word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']
print(get_close_matches(word, possibilities))
# Output: ['Andrew']

Selain itu terdapat beberapa lagi yang boleh anda semak yang merupakan sebahagian daripada Kaedah Difflib dan kelas: unified_diff, Differ dan diff_bytes

2. jadual

jadual ialah modul berguna yang berpusat pada penjadualan acara yang berfungsi merentas platform, dengan penjadual tugas pada Windows, dsb. berbeza sekali. Selalunya apabila menggunakan modul ini, anda akan menggunakan kelas berjadual.

Modul masa yang lebih biasa biasanya digunakan bersama-sama dengan jadual kerana kedua-duanya berurusan dengan konsep masa dan penjadualan.

Buat contoh berjadual:

schedular_name = sched.schedular(time.time, time.sleep)

Pelbagai kaedah boleh dipanggil daripada kejadian ini.

  • Apabila run() dipanggil, acara/entri dalam penjadual akan dipanggil mengikut urutan. Fungsi ini biasanya muncul pada penghujung program selepas acara telah dijadualkan. Di samping itu, cari akaun awam Linux untuk mengetahui cara membalas "buku git" di latar belakang dan dapatkan pakej hadiah kejutan.
  • enterabs() ialah fungsi yang pada asasnya menambah acara pada baris gilir dalaman penjadual. Ia menerima beberapa parameter dalam susunan berikut:
  • Masa pelaksanaan acara
  • Keutamaan aktiviti
  • Acara itu sendiri (fungsi)
  • Parameter fungsi acara
  • Kamus parameter kata kunci acara

Berikut ialah contoh cara menggunakan kedua-dua fungsi ini bersama-sama:

import sched
import time
def event_notification(event_name):
print(event_name + " has started")
my_schedular = sched.scheduler(time.time, time.sleep)
closing_ceremony = my_schedular.enterabs(time.time(), 1, event_notification, ("The Closing Ceremony", ))
my_schedular.run()
# Output: The Closing Ceremony has started

Terdapat juga beberapa fungsi yang memanjangkan penggunaan modul jadual: cancel(), enter() dan empty().

3. binaascii

binaascii ialah modul untuk menukar antara binari dan ASCII.

b2a_base64 ialah kaedah dalam modul binaascii yang menukar data base64 kepada data binari. Berikut ialah contoh pendekatan ini:

import base64
import binascii
msg = "Tandrew"
encoded = msg.encode('ascii')
base64_msg = base64.b64encode(encoded)
decode = binascii.a2b_base64(base64_msg)
print(decode)
# Output: b'Tandrew'

Kod ini harus jelas. Ringkasnya, ia melibatkan pengekodan, menukar kepada base64, dan menukarnya kembali kepada binari menggunakan kaedah b2a_base64.

Berikut ialah beberapa fungsi lain yang dimiliki oleh modul binaascii: a2b_qp(), b2a_qp() dan a2b_uu().

4. tty

tty ialah modul yang mengandungi beberapa fungsi utiliti yang boleh digunakan untuk menangani peranti tty. Berikut ialah dua fungsinya:

  • setraw() menukar mod deskriptor fail dalam hujahnya (fd) kepada mentah.
  • setcbreak() menukar mod deskriptor fail dalam hujahnya (fd) kepada cbreak.

Modul ini hanya tersedia pada Unix kerana keperluan untuk menggunakan modul termios, seperti menentukan parameter kedua (when=termios.TCSAFLUSH) dalam dua fungsi di atas.

5. weakref

weakref ialah modul untuk mencipta rujukan lemah kepada objek dalam Python.

Rujukan yang lemah ialah rujukan yang tidak melindungi objek tertentu daripada dikumpul oleh mekanisme kutipan sampah.

Berikut ialah dua fungsi yang berkaitan dengan modul ini:

  • getweakrefcount() 接受一个对象作为参数,并返回引用该对象的弱引用的数量。
  • getweakrefs() 接受一个对象并返回一个数组,其中包含引用该对象的所有弱引用。

weakref 及其函数的使用示例:

import weakref
class Book:
def print_type(self):
print("Book")
lotr = Book
num = 1
rcount_lotr = str(weakref.getweakrefcount(lotr))
rcount_num = str(weakref.getweakrefcount(num))
rlist_lotr = str(weakref.getweakrefs(lotr))
rlist_num = str(weakref.getweakrefs(num))
print("number of weakrefs of 'lotr': " + rcount_lotr)
print("number of weakrefs of 'num': " + rcount_num)
print("Weakrefs of 'lotr': " + rlist_lotr)
print("Weakrefs of 'num': " + rlist_num)
# Output:
# number of weakrefs of 'lotr': 1
# number of weakrefs of 'num': 0
# Weakrefs of 'lotr': [<weakref at 0x10b978a90; to 'type' at #0x7fb7755069f0 (Book)>]
# Weakrefs of 'num': []

输出从输出的函数返回值我们可以看到它的作用。由于 num 没有弱引用,因此 getweakrefs() 返回的数组为空。扩展:接私活儿

以下是与 weakref 模块相关的一些其他函数:ref()、proxy() 和 _remove_dead_weakref()。

回顾

  • Difflib 是一个用于比较数据集,尤其是字符串的模块。例如,SequenceMatcher 可以比较两个字符串并根据它们的相似性返回数据。
  • sched 是与 time 模块一起使用的有用工具,用于使用 schedular 实例安排事件(以函数的形式)。例如,enterabs() 将一个事件添加到调度程序的内部队列中,该队列将在调用 run() 函数时运行。

binaascii 可在二进制和 ASCII 之间转换以编码和解码数据。b2a_base64 是 binaascii 模块中的一种方法,它将 base64 数据转换为二进制数据。

tty 模块需要配合使用 termios 模块,并处理 tty 设备。它仅适用于 Unix。

weakref 用于弱引用。它的函数可以返回对象的弱引用,查找对象的弱引用数量等。其中非常使用的函数之一是 getweakrefs(),它接受一个对象并返回一个该对象包含的所有弱引用的数组。

要点

这些函数中的每一个都有其各自的用途,每一个都有不同程度的有用性。了解尽可能多的 Python 函数和模块非常重要,以便保持稳定的工具库,您可以在编写代码时快速使用。

无论您的编程专业知识水平如何,您都应该不断学习。多投入一点时间可以为您带来更多价值,并为您节省更多未来时间。

Atas ialah kandungan terperinci Adakah anda tahu lima modul Python yang berguna tetapi kurang dikenali ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam