搜索當前模塊跟當前函數的區別,搜索當前模塊跟當前函數的區別

本文目錄一覽:

arcpy函數 類 和模塊的區別

類可以有類方法(查查什麼是class method),不需實例化也可以使用的。

python的類和函數的區別主要在於類可以有變數和各種方法,而函數沒有。函數只能被運行,返回或者不返回值都可以。

模塊如果沒有把類聲明為私有,其他模塊就可以使用這個類,方法是import這個模塊,然後用”模塊名.類名”來調用。

模塊和函數一個意思么

我的觀點:同具體語言有關。

一般模塊是抽象的概念,按照功能劃分模塊,儘可能保證每個模塊互相獨立。這個一般同程序的邏輯設計有關,同具體語言關係不大。但也有例外,如python語言內置了對模塊的支持,對模塊有明確的定義,當然,這種情況下也可以按照自己的想法重新劃分模塊。

而函數一般都有有明確的定義,有明確的語法。函數沒什麼好討論的,是純粹的語法。

一般模塊里有多個函數。當然,如果你願意,也可以把一個幾個模塊寫進一個大函數。一般這種情況需要把函數拆開,分成幾個函數,除非環境有硬性的要求。對於python 模塊,每個模塊可以包含多個函數,但一個函數沒法包含多個模塊。不過一個函數可以通過import導入其它模塊的功能,儘管這些模塊是在函數之外定義的。

模塊是什麼意思,它跟函數有什麼區別呀?

就是把主函數分解掉,變成的模塊,從主函數里一個一個模塊的調用。

過程,模塊,函數,類,他們有什麼不同?

模塊

VB的代碼存儲在模塊中。在VB中提供了三種類型的模塊:窗體模塊、標準模塊和類模塊。

簡單的應用程序可以只有一個窗體,所用的程序都駐留在窗體模塊中,而當應用程序龐大複雜時,就要另外附加窗體。最終可能有幾個窗體中有一些共同都要執行的代碼,為了在兩個窗體中不產生重複代碼,可創建一個獨立的模塊,用它實現代碼公用。該獨立模塊即是標準模塊。此外還可以建立包含共享代碼與數據的類模塊。

每個標準模塊、類模塊和窗體模塊可包含:

聲明。 可將常數、類型、變數和動態鏈接庫(DLL)過程的聲明放在窗體、類或標準模塊的聲明部分。每個模塊只有一個聲明部分

過程。每個模塊可有多個過程,過程是劃分VB代碼的最小單元,每個過程是一個可執行的代碼片段。VB中主要有子過程、函數過程或者屬性過程等

各種模塊類型

1.窗體模塊

由於VB是面向對象的應用程序開發工具,所以應用程序的代碼結構就是該程序在屏幕上表示的對應模型。根據定交,對象包含數據和代碼。應用程序中的每個窗體都有一個相對應的窗體模塊(文件擴展名為.frm)

窗體模塊是VB應用程序的基礎。窗體模塊可以包含處理事件的過程、通用過程以及變數、常數、自定義類型和外部過程的窗體級聲明。寫入窗體模塊的代碼是該窗體所屬的具體應用程序專用的;也可以引用該程序內的其它窗體和對象

每個窗體模塊都包含事件過程,在事件過程中有為響應該事件而執行的程序段。窗體可包含控制項。在窗體模塊中,對窗體上的每個控制項都有一個對應的事件過程集。除了事件過程,窗體模塊還可包含通用過程,它對來自該窗體中任何事件過程的調用都作出響應。

2.標準模塊

標準模塊是程序中的一個獨立容器,包含全局變數、Function(函數)過程和Sub過程(子過程)。

可將那些與特定窗體或控制項無關的代碼放入標準模塊中。標準模塊中包含應用程序內的允許其它模塊訪問的過程和聲明。它們可以包含變數、常數、類型、外部過程和全局聲明或模塊級聲明。寫入標準模塊的代碼不必固定在特定的應用程序上;

(1)使用標準模塊

在編寫程序時,很可能會遇到一些使用相同變數和常式的窗體和事件過程。在預設狀態下,變數對於事件過程來說是局部的,就是說僅能在創建這些變數的事件過程中讀取或者修改變數。與之相似,事件過程對於創建它們的窗體來說也是局部。為了在工程中的所有窗體和事件中共享變數和過程,需要在該工程的一個或多個標準模塊中對它們進行聲明和定義。

標準模塊或代碼模塊是具有文件擴展名.bas,並包含能夠在程序任何地方使用的變數和過程的特殊文件。

正如窗體一樣,標準模塊被單 獨列在Project(工程)窗口內,並可通過使用File(文件)菜單中的Save Modulel As菜單項存檔。但是,與窗體不同,標準模塊不包含對象或屬性設置而只包含可在代碼窗口中顯示和編輯的代碼。

(2)創建標準模塊

如要在程序中創建新 的標準模塊,那麼單擊工具條Add Form(添加窗體)按鈕上的下箭頭並單擊Mode(模塊),或者單 擊Project(工程)菜單中的Add Module(添加模塊)菜單項。在工程中創建一個空的標準模塊的步驟如下:

S1:啟動VB,打開一個新的標準工程,單擊工程 菜單中的Add Module菜單項,單擊Open 按鈕。VB在工程中增加一個名為Module的標準模塊。該 模塊對應的代碼窗口被打開,對象和過程列表框的內容表明該 標準模塊的通用聲明已被打開。在此所聲明的變數與過程 在整個程序都可以使用。

S2:雙擊工程資源管理器窗口的標題條,以便能看到整個工程資源管理器窗口,

S3:在File(文件)菜單中,單 擊Save Modulel As

S4:如果D:\VB6sbs\less10文件夾未被選擇時,選擇該文件夾,鍵入MyTestMod.bas,然後按回車。該標準模塊作為MyTestMod.bas文件保存到磁碟,並且可以通過Project(工程)的Add File菜單項可將此文件通過其文件名載入到另一個工程中。

S5:雙擊Project(屬性)窗口標題條。由於模塊不包含對象,因此它惟一的屬性就是Name

S6:將Name屬性改為modVariables,然後按ENTER鍵。

(3)聲明公用變數

在標準模塊中聲明 全局變數十分簡單,鍵入關鍵字Public,後跟該 變數名。

預設狀態下,公用就量在模塊中被聲明為變體類型,但是可以通過使用As關鍵字來指定相應類型,可以把公用變數聲明為某個指定的基本類型。

3.類模塊

在VB中類模塊是面向對象編程的基礎。可以在類模塊中編寫代碼建立新對象。這些新對象可以包含自定義的屬性和方法。實際上,窗體正是這樣一種類模塊,在其上可安放控制項,可顯示窗體窗口

用類模塊創建對象,這些對象可被應用程序內的過程調用。標準模塊只包含代碼,而類模塊包含代碼又包含數據,可視為沒有物理表示的控制項。

模塊設計的考慮

在VB中創建應用程序的最重要的部分是設計階段。首先需要為應用程序設計一個用戶界面,這個界面的設計比較容易確定。但設計代碼的結構就是一項較複雜的工作。構造應用程序的方法不同,可能會造成應用程序的性能以及代碼的可維護性,可使用性不同。

VB應用程序呈層次結構。典型應用程序包括若干個模塊:應用程序中每個窗體的窗體模塊、共享代碼的標準模塊和類模塊。每個模塊包含若干含 有代碼的過程:Event過程,Sub過程或Function過程及Property過程。

在很多情況中都存在著多個對象共享的重複過程。這種情況最好創建一個共享的子過程,使大家都可以調用它。即使將來修改這些子程序,則只在一個地方修改就可進行全部修改,這將大大提高程序的可讀性和可維護性。可以把所有的共享操作放在標準的模塊中。

代碼編輯器

VB代碼編輯器是一個窗口,大多數代碼都在此窗口 上編寫。有許多便於編寫VB代碼的功能。在每個模塊中,對於模塊中包含 的每個對象,將模塊中的代碼再細分出與對象對應的獨立部分用”對象列表框”實現各對象間的切換。對於模塊,列表包含 一個通用段和一個類段;對於標準模塊,只有一個通用段被顯示。每一段代碼都可包含 若干個用”過程列表框”訪問的不同過程。對窗體或控制項的每一個事件過程,窗體模塊的過程列表都包含一個獨立的段。類模塊只列舉本身的事件從初始化到終止。標準模塊的過程列舉任何事件過程,因為標準模塊不支持事件。模塊通用段的過程列表只包含聲明段,其中放置模塊級的變數、常數和DLL聲明

VB代碼編輯器的一些功能和用法:

1.自動完成編碼

VB能自動填充語句、屬性和參數,這些性能使編寫代碼更加方便。在輸入代碼時,編輯器列舉適當的選擇。通過”工具”菜單上的”選項”命令訪問”選項”對話框,在”選項”對話框的”編輯器”選項卡上可以選擇”自動列出成員特性”,由它們決定是允許還禁止代各碼的設置值。在代碼中輸入一控制項名時,”自動列出成員特性”會顯示出這個控制項的下拉式屬性表。鍵入屬性名的前幾個字母,就會從表中選中該名字,按Tab鍵將完成輸入。當不能確認給定的控制項有什麼樣的屬性時,這個選項是非常有幫助的。即使選擇了禁止”自動列出成員特性”,仍可使用CTRL+J組合鍵得到這種性能。

“自動快速信息”功能可顯示語句和函數的語法。

2.書籤

在代碼編輯器中書籤可用來標記代碼的某些行,以便以後可以很容易地返回這些行。書籤開關的切換以及定位到已有書籤的命令可以在編輯菜單中書籤選項中得到。

過程

過程概述

一個應用程序是由若干模塊組成的,而每個模塊 又是由若干個更小的代碼片段組成,將組成這些模塊的代碼片段稱為過程。通過過程,可以將整個程序按功能進行分塊,每個過程用來完成一項特定的功能。使用過程 來組織代碼,不僅可以使程序的結構更加清晰,而且便於查找和修改代碼。當在其它工程中使用某個相同功能時,可以將過程作為可重用的代碼,直接拿到該 工程中使用。

1.VB是過程基本分類:

函數過程(Functi9on Procedure):函數過程用來完成特定的功能並返回相應的結果。在事件或其它過程 中可按名稱調用函數。函數過程能夠接收參數,並且總是以該函數名返回一個值。這類過程一般用於完成計算任務。

子過程:子過程是沒有返回值的函數。在事件 過程 或其它過程 中可按名稱調用子過程。子過程能夠接收到參數,並可用於完成過程中的任務並返回一些數值。但是,與函數過程不同,子過程不返回與其特定子過程名相關聯的值。子過程一般用於接收或處理輸入數據、顯示輸出或者設置屬性。

屬性過程:屬性過程用來創建和操作程序中用戶定義的屬性。這是一種有用的,在某種程度上相當高級的特性,它使能夠定製現有的VB控制項並通過創建新的對象,屬性和方法來擴展VB語言

通用過程:允許把一個經常用到的過程以熟悉的名稱寫入某個標準模塊中。

2.使用過程編程的優點

消除了重複語句行。

使程序更易閱讀。

簡化了程序開發

其它程序可重複使用該通用過程

擴展VB語言

子過程

子過程是在響應事件時執行的程序段。將模塊中的代碼分成子過程後,在應用程序中查找和修改代碼變得更容易了,子過程 類似於用戶自定義函數,不同之處是子過程不返回與其名稱相關聯的值,子過程一般用來從 用戶那裡得到輸入數據、顯示或列印信息,或者操縱與某一條件相關的幾種屬性。子過程也用來在過程調用中處理和返回若干個變數。

1.子過程的語法

(1)子過程語法

[Private|Public|Friend][Static]Sub過程名[(參數表)]

[程序段]

[Exit sub]

[程序段]

End Sub

Sub語句的語法包含下面部分:

Public可選的。表示所有模塊的所有其它過程都可訪問這個Sub過程。如果在包含Option Private的模塊中使用,則這個過程在該工程外是不可使用的

Private可選的。表示只有在包含其聲明的模塊中的其它過程可以訪問該Sub過程

Friend可選的。只能在類模塊中使用。表示該Sub過程在整個工程中都可見的,但對對象實例的控制項者是不可見的。

Static可選的。表示在調用之間保留Sub過程的局部就量的值。Static屬性對在Sub外聲明的變數不會產生影響,即使過程中也使用了這些變數。

過程名是必需。Sub的名稱遵循標準的變數命名約定。

參數表是可選的。代表在調用時要傳遞給Sub過程的參數的變數列表。多個變數由用逗號隔開

需要說明:

如果沒有使用Private,Public或Friend,Sub過程在預設情況是公用的。如果沒有使用Static,則在調用之後不會保留變數的值。Friend關鍵字只能在類模塊中使用。不過Friend過程可以被工程的任何模塊中的過程訪問。Friend過程不會在其父類的燈型庫中出現,且Friend過程不能被後期綁定。

2.Sub過程可以是遞歸的,也就是說,該過程可以調用自己來完成某個特定的任務。不過,遞歸可能會導致堆棧上溢。通常Static關鍵字和遞歸的Sub過程不在一起使用。

3.所有的可執行代碼都必須屬於某個過程,不能在別的Sub,Function或Property過程中定義Sub過程。

4.Exit Sub 語句使執行從一個Sub過程中退出。

5.Sub過程 與Function過程的相似之處是:它們都 是一個可以獲取參數,執行一系列語句,以及改變其參數的值的獨立過程。而與Function過程不同的是Sub過程不能用於表達式

6.可以使用過程名並後跟相應的參數列表來調用一個Sub過程。

7.在Sub過程中使用的變數分類為兩類:一類是在過程內顯示定義的,另一類則不是。

8.不能使用GoSub,GoTo或Return來進入或退出Sub過程

9.每次調用過程都會執行Sub和End Sub之間的語句塊。可以將子過程放入標準模塊、類模塊和窗體模塊中。

10. 在過程調用中,發送到子過程的參數值和類型必須與子過程聲明語句中參數值和類型相符

11.將變數傳遞給過程被稱為傳遞稱為引用參數,因為變數能夠被過程修改並返回給程序。

(2)調用子過程

在程序中調用子過程需要指明該過程的名稱,然後列出子過程所要求的參數。例如,要使用文字字元串調用AddNameToListBox過程,可以鍵入如下語句:AddNameToListBox “Kimberly”與之相似,通過鍵入如下語句可以使用變數來調用該過程 AddNameToListBox NewName $

在這兩種情況下,AddNameToListBox過程在列表框中添加確定的名稱。在該過程中,按值調用和按址調用肝產生相似的結果,因為在過程中並未修改該參數。

(3)使用子過程管理輸入

在程序中,當信息來自於兩個或多個來源,並需要採用相同格式時同,就往往使用子過程處理所輸入的信息。

2.通用過程

通用過程表示如何完成一指定的任務。一旦定義了通用過程,可由其他過程來調用。建立通用過程的理由之一就是幾個不同的事件過程也許要執行同樣的動作。將公共語句放入通用過程,並用事件過程來調用它,這樣就不必重複代碼,也容易維護應用程序。

通用過程包含在標準模塊中,它可由程序中任何部分調用。通用過程與事件過程不同,因為它並不與某個運行事件或使用工具箱控制項創建的對象相關聯。通用過程與VB的內建語句和函數類似,它們都名稱調用、可接收參數、並且分別完成一特定任務。

3.事件過程

VB應用程序是事件驅動的應用程序,事件是窗體或控制項所能識別的動作。在響應事件時,應用程序執行代碼。 VB的每一個窗體和控制項都 存放在一個預定義的事件集。運行應用程序時,當某個事件 發生,而且在與該事件關聯的過程 中存在代碼,則VB就會調用該事件過程。因為事件過程的過程名在對象和代碼之間建立了聯繫,所以可以說事件過程是附加在窗體和控制項上的。

每個事件對應一個事件過程,如果讓控制項響應事件時就要把相應的代碼寫入到這個事件的事件過程中。一個控制項的事件過程將控制項的實際名字、下劃線(_)和事件名組合起來。

控制項事件的語法和窗體事件的語法

Private Sub controlnake_eventname(參數表)

語句塊

Exit Sub

語句塊

End Sub

Private Sub Form_eventname(參數表)

語句塊

Exit Sub

語句塊

End Sub

Function過程

VB包含內置的或內部的函數,還可用Function語句編寫自己的Function過程。在定義了一個函數之後,可以像調用任何一個VB的內部函數一樣使用它,即可以在任何表達式,語句或函數中引用它。

函數過程是標準模塊中位中Function語句與End Function 語句之間的一系列語句。函數中的這些語句完成附某些有意義的工作,一般是處理文本,進行輸入或計算一個值。通過將函數名與便條所需的參數一起置於一條程序語句中,可以調用該函數。換句話說,使用函數過程與使用內置函數(比如Time,Int或Str等)的方法完全相同。

每個函數完成一種服務,比如進行計算並返回一個值。

在標準模塊中聲明的函數在預設的狀態下是公用函數,它們可在任何事件中過程中使用。

1.函數過程的語法

[Public|Private|Friend][Static]FunctionName[(Arglist)][As數據類型]

[程序段]

[Name=Expression]

[Exit Function]

[程序段]

[Name=Expression]

End Function

Function 語句的語法包含下面部分:

Public表示所有模塊的所有過程都可訪問這個Function過程。如果是在包含Option Private的模塊中使用,則這個過程在該工程外是不可使用的。

Private表示只有包含其聲明的模塊的過程要以訪問該Function過程。

Friend只能在類模塊中使用。表示該Function過程在整個工程中都是可見的,但對於對象實例的控制者是不可見的。

Static表示在調用之間將保留Function過程的局部變數值。Static屬性對在該Function外聲明的變數不會產生影響,即使過程中也使用了這些變數。

Name是Function的名稱;遵循標準的變數命名約定。

Arglist代表在調用時要傳遞給Function過程的參數變數列表,多個參數變數應用逗號隔開。

數據類型是Function過程的返回值的數據類型,可以是Byte,Boolean,Integer,Long,Currency,Single,Double,Date,Strig(不包含定長字元串),Object,Variant或任何用戶定義類型。

程序段是在Function過程中執行的任何語句塊。

Expression是Function的返回值。

其中的參數表,參數的語法以及語法各個部分如下:

[Option][ByVal|ByRef][ParamArray]Varname[()][As數據類型][=defaultvalue]

Optional表示參數不是必需的。如果使用了該選項,則Arglist中的後續參數都必須是可選的,而且必須都使用Optional關鍵字聲明。如果使用了ParamArray,則任何參數都不能使用Optional聲明。

ByVal 表示該參數按值傳遞。

ByRef表示該參數按地址傳遞,ByRef是VB的預設選項。

ParamArray只用於Arglist的最後一個參數,指明最後這個參數是一個Variant元素的Optional數組。

Varname代表參數的變數的名稱;遵循標準的變數命名約定。

數據類型表示傳遞給該過程的參數的數據類型;可以是Byte,Boolean,Integer,Long,Currency,Single,Double,Date,String,Object或Variant.

defaultvalue表示任何常數或常數表達式,只對於Option參數時是合法的。如果類型為Object,則顯示預設值只能是Nothing

簡要說明如下:

1.如果沒有使用Public,Private或Friend顯示指定,則Function過程為公用。如果沒有使用Static,則局部變數的值在調用之後不會保留。Friend關鍵字只能在類模塊中使用。但Friend過程可以被工程的任何模塊中的過程訪問。Friend過程不會在其父類的類型庫中出現。

2.Function過程可以是遞歸的;也就是說,該過程調用自己來完成某個特定的任務。不過,遞歸可能會導致堆棧上溢。通常Static關鍵字和遞歸Function過程不在一起使用

3.所有的可執行代碼都必須屬於某個過程。

4.Exit Function語句使執行立即從一個Function過程中退出。

5.與Sub過程一樣,Function過程是一個獨立的過程 ,可讀取參數、執行一系列語句並改變其參數的值。與子過程不同,Function過程也返回一個值到調用的過程。Sub過程與Function過程之間有三點區別:

語句或表達式的右邊包含函數過程和參數,這就調用了函數

與變數完全一樣,函數過程應該定義返回值的數據類型

給Functionname賦一個值,就可返回這個值。Function過程返回一個值時,該值可成為表達式 的一部分

例如,下面是已知直角三角形兩直角邊的值,計算斜邊的函數。

function hypotenuse(A as integer,B as integer) as string

hypotenuse=sqr(A^2+B^2)

End function

在VB中調用function過程的方法和調用任何內部函數的方法是一樣的:

label1.caption=hypotenuse(Cint(text1.text),cint(text2.text))

strX=hypotenuse(width,height)

函數總是以該函數的名稱返回給調用過程一個值。因此,函數中的最後一行語句往往是將函數的最終計算結果放入functionname中的賦值語句。例如,下文中的函數過程total1用來為某個工程計算,然後將結果賦值給total1名。

function total1(cost)

t1=cost*0.05

t2=cost*0.015

total1=t1+t2

end function

如果沒有對name賦值,則過程將返回一個預設值:數值函數返回0,字元串函數返回一個零長度字元串(””),variat函數則返回empty。如果在返回對象引用的function過程中沒有將對象引用賦給name(通過set),則函數返回nothing。

2.調用函數過程

在事件過程中調用函數Total1時,使用與下文相類似的語句:S1.Caption=TotalTax(500).該語句計算Cost值為500時Total的值,然後將結果賦值給S1對象的Caption(標題)屬性。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309248.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-04 19:30
下一篇 2025-01-04 19:30

相關推薦

  • Python中引入上一級目錄中函數

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

    編程 2025-04-29
  • Python中new和init的區別

    new和init都是Python中常用的魔法方法,它們分別負責對象的創建和初始化,本文將從多個角度詳細闡述它們的區別。 一、創建對象 new方法是用來創建一個對象的,它是一個類級別…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Sublime Test與Python的區別

    Sublime Text是一款流行的文本編輯器,而Python是一種廣泛使用的編程語言。雖然Sublime Text可以用於編寫Python代碼,但它們之間有很多不同之處。接下來從…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論