C怎麼將類作為引數傳遞,python怎麼向類中的函式傳遞引數

時間 2021-08-30 09:17:01

1樓:千鋒教育

public static void getresult(person p)

public class person

public string b}

2樓:

個人覺得有很多種方法:

1、用object類:

class abc

public string msg

public object data

}2、用dynamic

class abc

public string msg

public dynamic data

}3、用泛型

class abc

public string msg

public t data

}就你的情況,個人推薦用泛型。

3樓:洛蝶納昭

c#中陣列是可以做為引數傳遞的,c#中傳值可以用form與form之間傳引數的方法來實現。只要在第二個form裡的預設建構函式新增具體的引數,然後在第一個form裡具體實現傳值的事件裡新增form2

frm2=new

form2(陣列引數);frm2.showdialog();第二個form載入後,就可以在第二個form新增變數獲取傳遞的引數了。

4樓:愛的獻言策

按照你下面的方法你是想用entity framework來實現了,將a、b、c這這三類合併成一個實體類對c#的程式設計規範來說是不科學的。你的設計本身就是在類裡面封裝的屬性,他們是可以直接例項化被呼叫的。

從你的描述來看x1、x2、x3三個實體類可以按照上面回答的這樣“多個類合一個例項的話,可以用多重繼承的方式,但是要這三個類有附屬關係”這個說法我想合理。

5樓:匿名使用者

做為引數應該傳遞的話,首先應該滿足是一個例項、一個物件吧傳遞類需要把類例項化之後再傳參。。

多個類合一個例項的話,可以用多重繼承的方式,但是要這三個類有附屬關係純屬c#小白意見,說錯莫怪

6樓:丶沒好名字

class d

public b b

public c c}

c++的std:thread是怎麼進行引數傳遞的

7樓:好程式設計師

thread 是模板,引數的形式是所謂的 forwarding reference(或 universal reference),所以傳參給 thread 的建構函式時,如果引數是左值,則引數被 copy 到內部,如果傳的引數是右值,則 move,無論如何 thread 內部都(暫時)保留了引數的一個 copy,然後內部傳給使用者的函式時,直接 move.

python怎麼向類中的函式傳遞引數

8樓:育知同創教育

python中函式引數的傳遞是通過“賦值”來傳遞的。但這條規則只回答了函式引數傳遞的“戰略問題”,並沒有回答“戰術問題”,也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。

而後者又是由前者決定的。函式引數的定義有四種形式:

1. f(arg1,arg2,...)

2. f(arg2=,arg3=...)

3. f(*arg1)

4. f(**arg1)

第1 種方式是最“傳統”的方式:一個函式可以定義不限個數引數,引數(形式引數)放在跟在函式名後面的小括號中,各個引數之間以逗號隔開。用這種方式定義的函式在呼叫的時候也必須在函式名後的小括號中提供相等個數的值(實際引數),不能多也不能少,而且順序還必須相同。

也就是說形參和實參的個數必須一致,而且想給形參1的值必須是實參中的第一位,形參與實參之間是一一對應的關係,即“形參1=實參1 形參2=實參2...”。很明顯這是一種非常不靈活的形式。

比如:"def addon(x,y): return x + y",這裡定義的函式addon,可以用addon(1,2)的形式呼叫,意味著形參x將取值1,主將取值2。

addon(1,2,3)和addon (1)都是錯誤的形式。

第2種方式比第1種方式,在定義的時候已經給各個形參定義了預設值。因此,在呼叫這種函式時,如果沒有給對應的形式引數傳遞實參,那麼這個形參就將使用預設值。比如:

“def addon(x=3,y=5): return x + y”,那麼addon(6,5)的呼叫形式表示形參x取值6,y取值5。此外,addon(7)這個形式也是可以的,表示形參x取值7,y取預設值5。

這時候會出現一個問題,如果想讓x取預設值,用實參給y賦值怎麼辦?前面兩種呼叫形式明顯就不行了,這時就要用到python中函式呼叫方法的另一大絕招 ──關健字賦值法。可以用addon(y=6),這時表示x取預設值3,而y取值6。

這種方式通過指定形式引數可以實現可以對形式引數進行“精確攻擊”,一個副帶的功能是可以不必遵守形式引數的前後順序,比如:addon(y=4,x=6),這也是可以的。這種通過形式引數進行定點賦值的方式對於用第1種方式定義的函式也是適用的。

上面兩種方式定義的形式引數的個數都是固定的,比如定義函式的時候如果定義了5個形參,那麼在呼叫的時候最多也只能給它傳遞5個實參。但是在實際程式設計中並不能總是確定一個函式會有多少個引數。第3種方式就是用來應對這種情況的。

它以一個*加上形參名的方式表示,這個函式實際引數是不一定的,可以是零個,也可以是n個。不管是多少個,在函式內部都被存放在以形參名為識別符號的tuple中。比如:

對這個函式的呼叫addon() addon(2) addon(3,4,5,6)等等都是可以的。

與第3種方式類似,形參名前面加了兩個*表示,引數在函式內部將被存放在以形式名為識別符號的dictionary中。這時候呼叫函式必須採用key1=value1、key2=value2...的形式。

比如:1. def addon(**arg):

2. sum = 0

3. if len(arg) == 0: return 0

4. else:

5. for x in arg.itervalues():

6. sum += x

7. return sum

那麼對這個函式的呼叫可以用addon()或諸如addon(x=4,y=5,k=6)等的方式呼叫。

上面說了四種函式形式定義的方式以及他們的呼叫方式,是分開說的,其實這四種方式可以組合在一起形成複雜多樣的形參定義形式。在定義或呼叫這種函式時,要遵循以下規則:

1. arg=必須在arg後

2. *arg必須在arg=後

3. **arg必須在*arg後

在函式呼叫過程中,形參賦值的過程是這樣的:

首先按順序把“arg”這種形式的實參給對應的形參

第二,把“arg=”這種形式的實參賦值給形式

第三,把多出來的“arg”這種形式的實參組成一個tuple給帶一個星號的形參

第四,把多出來的“key=value”這種形式的實參轉為一個dictionary給帶兩個星號的形參。

例子:1. def test(x,y=5,*a,**b):

2. print x,y,a,b

就這麼一個簡單函式,來看看下面對這個函式呼叫會產生什麼結果:

test(1) ===> 1 5 () {}

test(1,2) ===> 1 2 () {}

test(1,2,3) ===> 1 2 (3,) {}

test(1,2,3,4) ===> 1 2 (3,4)

test(x=1) ===> 1 5 () {}

test(x=1,y=1) ===> 1 1 () {}

test(x=1,y=1,a=1) ===> 1 1 ()

test(x=1,y=1,a=1,b=1) ===> 1 1 ()

test(1,y=1) ===> 1 1 () {}

test(1,2,y=1) ===> 出錯,說y給賦了多個值

test(1,2,3,4,a=1) ===> 1 2 (3,4)

test(1,2,3,4,k=1,t=2,o=3) ===> 1 2 (3,4)

9樓:匿名使用者

class a:

def a(self, d):

print(d)

d =a = a()

a.a(d)

jquery ajax怎麼通過header傳遞引數

10樓:育知同創教育

jquery中不建議ajax通過header傳遞引數。

主要原因如下:

proxy 和 reverse proxy會丟失header導致引數丟失

不利於傳輸js物件

http access control (cors)  api 一般會設定access-control-allow-headers設定域限制

不利於開發和除錯檢視引數的正確性

header中的引數有長度限制,可能會導致傳輸丟失舉例如下:

$.ajax(

}).done(function(data)).fail(function(jqxhr)).always(function())

正確的做法:

1. path中傳遞(這是最常見的)

2. body中傳遞post 請求裡面很常見3. header field,例如 cookie,以及 oauth 的 authorization 等

11樓:匿名使用者

涉及業務邏輯的輸入是需要通過引數傳遞的,主要有三種方法:path, query, post/put body

path: get /api/user/123 其中的123通過path傳遞

query: get /api/search_user?userid=123

body: post /api/user-signup

不建議通過header傳參的原因:

1. proxy 和 reverse proxy會drop header

2. 不利於傳輸object

3. http access control (cors) api 一般會設定access-control-allow-headers,分分鐘教你做人。

4. 不利於dev和debug

5. header長度限制

然後,如果你需要傳header,比如authorization,

c語言中如何將二維陣列作為函式的引數傳遞

鄞臨婁溶溶 在c語言中可以用二維陣列作為實參或者形參。1 函式中用二維陣列作為形參,函式宣告中可以指定所有維數的大小,也可以省略第1維的維數如 void f int array 3 10 正確 void f int array 10 正確上面的兩種二維陣列形參表示都是正確的。2 函式中用二維陣列作為...

c 如何將多個類儲存在陣列中,c 如何將多個類儲存在乙個陣列中

所謂陣列,就是相同資料型別的元素按一定順序排列的集合,就是把有限個型別相同的變數用乙個名字命名,然後用編號區分他們的變數的集合,這個名字稱為陣列名,編號稱為下標。所以在陣列中只能儲存相同型別的類物件。要儲存多個物件,只需要定義乙個類物件陣列,然後賦值進去即可。如類名為a,要儲存最多100個物件,需要...

c陣列可以通過值引數和引用引數兩種方式傳遞給函式”的說法對否

不對。int,char或者自定義的類可以通過值引數和引用引數兩種方式傳遞給函式,陣列不行。陣列是兩種指標傳遞 void sort int a 對於指標a來說是值傳遞,對於陣列來說是指標傳遞 void sort int a 100 這種方法類似於引用,但實質上還是指標傳遞 謝3哥 當然對了 1,引用 ...