本文目錄一覽:
- 1、python如何定義新對象
- 2、python AT命令求助
- 3、python行名怎麼自定義
- 4、python自定義函數有哪些?
- 5、python如何自定義異常?
- 6、python獲取給手機發送AT命令如何獲取返回值?
python如何定義新對象
Python可以自定義新的類,然後用這些類創建新對象。
class Fruit:
def __init__(self, name):
self.name = name
def prntName(self):
print self.name
這是一個簡單的Python類的實現。
fruit = Fruit(‘apple’)
fruit.prntName()
這樣子,我們就創建了一個自定義的新的對象了。
python AT命令求助
我只在Windows下用過pyserial,和你用的模塊略微有差別。
從code看,你用write方法發送字符以後,沒有回車(發送 \n 到串口),或許是因為這個,“AT+CGMI”其實沒有執行,所以也讀不出結果。
python行名怎麼自定義
1、cmd007 作為自定義命令名稱
2、cmd007 hello –name=Lily 作為自定義功能1的名稱hello打招呼,輸出:Hi, Lily
3、cmd007 eat –food=fish 作為自定義功能2的名稱food吃東西,輸出:I like to eat fish
(一)目錄結構如下:
cmd007 # 文件夾必須和自定義命令同名
│ __init__.py
│ __main__.py
(二)實現自定義命令和功能1
在__main__.py中
View Code
來到cmd007的上級目錄下,調出命令行客戶端,執行命名:
python cmd007
python cmd007 -V
python cmd007 hello –name=Lily –count=3
python cmd007 hello -n Lilei -c 2
分別輸出:
提示:如果將這個python包cmd007打包發布,然後安裝到python中去,那麼每行命令就不用輸入python關鍵字了。
(三)實現自定義命令、功能1、功能2
在__main__.py中增加代碼
# 自定義功能2:eat
@cli.command(name=”eat”)
@click.option(‘-f’, ‘–food’, help=”please input your like food”)
@click.option(‘-a’, ‘–and-you’, help=”ask echo other”, default=False)
def hello_command(food, and_you):
print(“I like to eat {0}”.format(food))
if and_you in [‘t’, ‘T’, ‘true’, ‘True’, True, 1, “1”]:
print(“And what is your favorite food ?”)
完整版:
View Code
執行
python cmd007 eat -f fish –and-you=1
輸出
延伸:
@click.option()中的參數詳解:
每個參數解釋如下:
name or flags – 選項字符串的名字或者列表,例如 foo 或者 -f, –foo。
action – 命令行遇到參數時的動作,默認值是 store。
store_const,表示賦值為const;
append,將遇到的值存儲成列表,也就是如果參數重複則會保存多個值;
append_const,將參數規範中定義的一個值保存到一個列表;
count,存儲遇到的次數;此外,也可以繼承 argparse.Action 自定義參數解析;
nargs – 應該讀取的命令行參數個數,可以是具體的數字,或者是?號,當不指定值時對於 Positional argument 使用 default,對於 Optional argument 使用 const;或者是 * 號,表示 0 或多個參數;或者是 + 號表示 1 或多個參數。
const – action 和 nargs 所需要的常量值。
default – 不指定參數時的默認值。
type – 命令行參數應該被轉換成的類型。
choices – 參數可允許的值的一個容器。
required – 可選參數是否可以省略 (僅針對可選參數)。
help – 參數的幫助信息,當指定為 argparse.SUPPRESS 時表示不顯示該參數的幫助信息.
metavar – 在 usage 說明中的參數名稱,對於必選參數默認就是參數名稱,對於可選參數默認是全大寫的參數名稱.
dest – 解析後的參數名稱,默認情況下,對於可選參數選取最長的名稱,中劃線轉換為下劃線.
python自定義函數有哪些?
Python的自定義函數格式中規中矩,用def引導自定義函數名,用括號給出該函數的參數,在冒號後換行通過縮進確定函數體。在格式上和條件判斷語句有些相似。
如果函數名和變量名衝突了,相當於重新賦值。而python解釋是從上到下的,也就是說此時誰在下面誰佔用這個變量名。剩下的那個就只能在內存中等待垃圾回收了。
自定義函數的參數:
按道理來說,即使Python不嚴格要求定義函數參數,但這方面的知識有助於理解自定義函數中參數操作的情況,還是應該說明一下的。
可以簡單地理解為在定義函數時括號中聲明的參數是我們在函數使用中會用到的參數,在調用函數時括號中的變量就是參加函數運算用到的變量,換個名字參數(用於定義)和變量(用於調用)就足以理解了。
python如何自定義異常?
8.5. 用戶自定義異常
在程序中可以通過創建新的異常類型來命名自己的異常(Python 類的內容請參見 類 )。異常類通常應該直接或間接的從 Exception 類派生,例如:
class MyError(Exception):
… def __init__(self, value):
… self.value = value
… def __str__(self):
… return repr(self.value)
…
try:
… raise MyError(2*2)
… except MyError as e:
… print(‘My exception occurred, value:’, e.value)
…
My exception occurred, value: 4
raise MyError(‘oops!’)
Traceback (most recent call last):
File “
“, line 1, in ?
__main__.MyError: ‘oops!’
在這個例子中,Exception 默認的 __init__() 被覆蓋。新的方式簡單的創建 value 屬性。這就替換了原來創建 args 屬性的方式。
異常類中可以定義任何其它類中可以定義的東西,但是通常為了保持簡單,只在其中加入幾個屬性信息,以供異常處理句柄提取。如果一個新創建的模塊中需要拋出幾種不同的錯誤時,一個通常的作法是為該模塊定義一個異常基類,然後針對不同的錯誤類型派生出對應的異常子類:
class Error(Exception):
“””Base class for exceptions in this module.”””
pass
class InputError(Error):
“””Exception raised for errors in the input.
Attributes:
expression — input expression in which the error occurred
message — explanation of the error
“””
def __init__(self, expression, message):
self.expression = expression
self.message = message
class TransitionError(Error):
“””Raised when an operation attempts a state transition that’s not
allowed.
Attributes:
previous — state at beginning of transition
next — attempted new state
message — explanation of why the specific transition is not allowed
“””
def __init__(self, previous, next, message):
self.previous = previous
self.next = next
self.message = message
與標準異常相似,大多數異常的命名都以 “Error” 結尾。
很多標準模塊中都定義了自己的異常,用以報告在他們所定義的函數中可能發生的錯誤。
python獲取給手機發送AT命令如何獲取返回值?
安裝一個pyseries包。 然後找一個AT標準的命令集。似乎有人封裝好了。我以前見過。
然後剩下的事情就超 簡單了。 測試通過就可以用。
好象以前是用這個做運維時,給運維人員發短信用的。這個功能十幾年前就成熟了。現在都應該 有現成的python模塊。
原創文章,作者:WMPF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139555.html