emmm,這個筆記主要是給自己看到的,整理了李茂老師《python硬件編程實戰》一書中的內容。
【普通python腳本文件的編寫規範框架】
一般腳本文件的編寫主要包含,SheBang部分、模塊信息描述部分、導入第三方庫部分、模塊函數主體、模塊測試代碼。
其中的 name == “main“: 具體的含義在這個博客中解釋的挺好的:https://www.cnblogs.com/alan-babyblog/p/5147770.html 就不贅述了。
# !\usr\bin\python
# -*- coding: utf-8 -*-
"""
----------------------------------------------------------------------------------------------------
Function:
Author:
Version:
Contact:
----------------------------------------------------------------------------------------------------
"""
# -------------------------------------import-------------------------------------------------------
import platform
# -------------------------------------function-----------------------------------------------------
def demo():
print('This is a demo on how to write a formal python script.') # 可以使用中文註釋
####################################################################################################
if __name__ == "__main__": # __main__ 和 __name__的使用
print('i am(hello.py) doing a test on the written program!')
demo()
else:
print('i am(hello.py) being imported by another file!')
【類腳本文件的編寫方式】
下面的程序主要講到的是全局變量、類全局變量、示例變量、臨時變量之間的愛恨情仇。
# !\usr\bin\python
# -*- coding: utf-8 -*-
"""
----------------------------------------------------------------------------------------------------
Function: 介紹面向對象編程的基礎知識
Author:
Version:
Contact:
----------------------------------------------------------------------------------------------------
"""
# -------------------------------------import-------------------------------------------------------
import hello
# python中每個calss的代碼中的第一個參數就是self,class中訪問對應的變量及調用函數的格式爲self.valueName, self.function()
# 的形式。這裏的self指的是示例instance本身。如果沒有寫self, 而是直接使用變量,那麼實際上調用的不是示例中的變量和函數,而
# 是其他部分的變量和函數。1)如果沒有在class的最初__init__函數中正確地初始化實例變量,將會導致後續引用實例變量出錯。如果
# 以類中的變量作爲參照,那麼變量分爲全局變量、臨時局部變量、類變量
# -------------------------------------function-----------------------------------------------------
def a2init():
hello.demo()
print('this is a new python file')
name = "whole global name" # 可直接對全局變量進行訪問
class Person:
name = "class global name" # 調用該類全局變量需使用Person.name
def __init__(self, newPersonName):
# __init__的含義是初始化,爲對應的類Class本身初始化,支持帶參數的類的初始化,實現對類本身相關內容的初始化
self.name = newPersonName # 實例化之後,調用該類屬性變量需使用instance.name
name = newPersonName # 如果前面沒有加self前綴,則是自動變量(臨時變量)。屬於__init__函數中的局部變量。
def say_your_name(self):
print('my name is %s' % self.name)
def selfAndInitDemo():
person_instance = Person('crifan') # class的實例化
person_instance.say_your_name() # 實例化的函數調用方式
print('all people name %s'% Person.name) # 類全局變量的調用方式
# python函數的語法結構
"""
def function( parameters ):
"function docstring"
function_suite
return [expression]
"""
def printInputStr(inputstr):
"此函數是爲了演示,打印輸入的字符串"
print(inputstr)
####################################################################################################
if __name__ == "__main__":
a2init()
selfAndInitDemo()
printInputStr("第一次調用函數。")
printInputStr("再次調用函數。")
print("函數printInputStr的docstrings是:", printInputStr.__doc__) # __doc__是每個函數的內置屬性
# python中的變量無需定義,可直接使用。
# 【全局變量】,不論是其他普通函數中還是Class類中,全局變量都是可以通過對應的函數名爲直接引用
# 【局部變量】,對於函數內,包括類Class的函數內,普通的變量都是自動臨時變量。 普通局部變量(automatic variable),而局部
# 變量的優先級大於外部變量的優先級。如果函數內部出現了和全局變量同名的變量,則說明是全局變量。如果函數內,沒有同名的局部
# 變量,則對應的變量是全局變量。
# 【類的變量】,類的變量在累的範圍內只能夠通過className.propertyName或者是ClassName.VariableName去訪問當前類的ClassName
# 的變量PropertyName。即,類的全局變量
# 【示例變量】,示例變量理論上是用InstanceObject.PropertyName訪問的。此處由於類的函數第一個參數的名字定義爲Instance變量,
# 且名字叫做self,所以就變成了self.PropertyName了。