python如何寫一個接口(Python編寫接口)

  • 1、如何用python編寫dbus接口
  • 2、python如何寫上一接口
  • 3、Python中怎麼寫接口啊,我在網上一直找不到
  • 4、python編寫接口,請求url應該如何確定?
  • 5、Python接入不同類型數據庫的通用接口方法

寫一個 python 腳本需要用到 dbus,但因為 dbus-python 這個包並沒有提供 setup.py , 所以無法通過 pip 直接安裝,唯有下載源碼手動編譯安裝一途了。

wget

tar zxvf dbus-python-0.84.0.tar.gz

cd dbus-python-0.84.0

# -*- coding:utf-8 -*-# Author Caoxlimport sys account_file=’E:\user.txt’locked_file=’E:\locked.txt’ def deny_account(username): print(‘您的用戶已被鎖定’) with file(locked_file,’a’) as deny_f: deny_f.write(‘\n’+username) def main(): retry_count=0 retry_limit=3 #循環次數 while retry_countretry_limit: #用戶最多重複登陸3次 username=raw_input(‘請輸入您的用戶名:’) #引導用戶輸入用戶名 with file(locked_file,’r’) as lock_f: #採用with打開方式,將locked_file賦值lock_f,防止忘記f.close()關閉文件 for line in lock_f.readlines(): #循環遍歷每一行的內容 if len(line)==0: #對每一行內容進行處理 continue if username == line.strip(): #利用.strip這個函數去掉換行符,來對username進行匹配。 sys.exit(‘用戶已經被鎖定!’) if len(username)==0: #提示用戶登錄時,用戶名不能為空! print(‘用戶名不能為空,請重新輸入’) continue password= raw_input(‘請輸入您的密碼:’) #引導用戶輸入密碼 with file(account_file,’r’) as account_f: flag= False for line in account_f.readlines(): user,pawd=line.strip().split() #將用戶名和對應密碼進行處理 if username==user and password==pawd: #判斷用戶名和密碼 print(‘success!’) flag=True break #退出for循環 if flag==False: #避免用戶在三次輸入後,依然提示重新輸入。 if retry_count2: print(‘您輸入的用戶名或密碼有誤,請重新輸入!’) retry_count+=1 else: print(‘歡迎用戶登陸成功!!’) break # 加標誌位是為了用戶能夠成功推出整個循環! deny_account(username) #對應上面的def函數把鎖定賬號加入文檔中去 if __name__ == ‘__main__’: main()

什麼是接口 ?

接口只是定義了一些方法,而沒有去實現,多用於程序設計時,只是設計需要有什麼樣的功能,但是並沒有實現任何功能,這些功能需要被另一個類(B)繼承後,由 類B去實現其中的某個功能或全部功能。

個人的理解,多用於協作開發時,有不同的人在不同的類中實現接口中的各個方法。

在python中接口由抽象類和抽象方法去實現,接口是不能被實例化的,只能被別的類繼承去實現相應的功能。

個人覺得接口在python中並沒有那麼重要,因為如果要繼承接口,需要把其中的每個方法全部實現,否則會報編譯錯誤,還不如直接定義一個class,其中的方法實現全部為pass,讓子類重寫這些函數。

當然如果有強制要求,必須所有的實現類都必須按照接口中的定義寫的話,就必須要用接口。

方法一:用抽象類和抽象函數實現方法

[python] view plain copy

#抽象類加抽象方法就等於面向對象編程中的接口

from abc import ABCMeta,abstractmethod

class interface(object):

__metaclass__ = ABCMeta #指定這是一個抽象類

@abstractmethod  #抽象方法

def Lee(self):

pass

def Marlon(self):

pass

class RelalizeInterfaceLee(interface):#必須實現interface中的所有函數,否則會編譯錯誤

def __init__(self):

print ‘這是接口interface的實現’

def Lee(self):

print ‘實現Lee功能’

def Marlon(self):

pass

class RelalizeInterfaceMarlon(interface): #必須實現interface中的所有函數,否則會編譯錯誤

def __init__(self):

print ‘這是接口interface的實現’

def Lee(self):

pass

def Marlon(self):

print “實現Marlon功能”

方法二:用普通類定義接口,

[python] view plain copy

class interface(object): #假設這就是一個接口,接口名可以隨意定義,所有的子類不需要實現在這個類中的函數

def Lee(self):,

pass

def Marlon(self):

pass

class Realaize_interface(interface):

def __init__(self):

pass

def Lee(self):

print “實現接口中的Lee函數”

class Realaize_interface2(interface):

def __init__(self):

pass

def Marlon(self):

print “實現接口中的Marlon函數”

obj=Realaize_interface()

obj.Lee()

obj=Realaize_interface2()

obj.Marlon()

1、是一個接口

2、程序需要運行後才能訪問,可以部署到服務器上,程序一旦運行是守護進程,只要不關閉程序一直會運行

3、請求的url根據’/xxx’來確定,請求的類型 methods=[‘get’]

日常數據管理工作中,需要處理存儲在不同類型數據庫系統的數據。對這些數據的管理,常見的是使用Navicat,DBeaver等管理工具。在對大量數據分析時,需要提取到Python/R中進行處理。下面 探索 Python調用MySQL,MongoDB,InfluxDB等多種類型數據庫通用連接方法。實現方式是在Python中封裝各類數據庫接口包。

實現後的效果:1.安全。接口信息封裝便於保密管理;2.復用。一次封裝,永久復用;3.上手快。方便不熟悉python和數據調用的同學,只會簡單的sql即可使用,省時省力。

下面以MySQL,MongoDB,InfluxDB為例定義接口方法,然後把它們封裝成1個通用方法。

mysql_get(sql,db):

mongo_get(sql,db):

influx_get(sql,db):

可以看到,以上函數共同調用的參數為sql和db。我們再增加一個參數db_type,將構造一個通用的方法對以上數據庫調用。

同理,其他類型的數據庫也可以加入到這個通用框架中,包括但不限於各類關係型,鍵值型,時序型數據庫。

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126964.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論