python中將類傳給函式,在函式中修改類的值的問題
比如foo = [1,2,3] 可以理解成為foo指向[1,2,3],foo和[1,2,3]並不是在一起
現在有個函式
def alter(bar):
bar.append(4)
bar = [0,1]
如果我們把foo傳給alter這個函式,
alter(foo)
就會有foo和bar分別指向[1,2,3]
執行bar.append(4)
因為bar指向[1,2,3], [1,2,3]現在變成[1,2,3,4]
因為foo也指向[1,2,3],現在被bar改成了[1,2,3,4],foo也是[1,2,3,4]
執行bar = [0,1]
bar指向一個新的[0,1],但是foo還是指向[1,2,3,4]
執行完alter函式foo是[1,2,3,4]
所以理論上不是傳引用,如果穿引用foo在執行完alter函式後應該是[0,1]
def alter(bar):
bar.append(4)
bar = [0,1]
foo = [1,2,3]
print 'foo', foo
alter(foo)
print 'foo', foo
相關推薦
016-Decorator(修飾器,是一個函式,用來修改類的行為)
/** * Decorator(修飾器,是一個函式,用來修改類的行為) * 擴充套件類的功能 * * 第三方庫修飾器的js庫:core-decorators; npm install core-
python中將類傳給函式,在函式中修改類的值的問題
說得具體點可以把python的變數理解成一個名字指向實際的值,在傳到函式裡的時候, 是告訴函式的變數名字也指向我的這個值,但是並不是我自己傳到函式內 比如foo = [1,2,3] 可以理解成為foo指向[1,2,3],foo和[1,2,3]並不是在一起 現在有個函式 def alter(bar):
使用類的靜態欄位和建構函式,可以跟蹤某個類所建立物件的個數
package TongJi; public class Duixiang { private static int n; public Duixiang() { n++; } public static int g
使用類的靜態欄位和建構函式,可以跟蹤某個類所建立物件的個數。請寫一個類,在任何時候都可以向它查詢“你已經建立了多少個物件?”
public class Genzong { private static int n = 0; public Genzong() { n++; } public static int GetNum() { return n; }
使用類的靜態欄位和建構函式,可以跟蹤某個類所建立物件的個數。請寫一個類,在任何時候都可以向它查詢“你已經建立了多少個物件
package demo; public class Tongji { private static int n; public Tongji() { n++;//次new一個物件的時候都可以給n加1 } public static int ge
Python學習-第2課(函式,函式文件)
一、函式 1.定義 程式碼的一種組織形式 一個函式一般完成一項特定的功能 函式使用 函式需要先定義 使用函式,俗稱呼叫 2.函式的引數和返回值 引數: 負責給函式傳遞一些必要的資料或者資訊 形參(形式引數): 在函式定義的時
Python之高等數學(對映,函式,數列,極限)
對映{x}→{y} 定義:兩個非空集合 X、 Y,若存在法則 f,使 X中每個元素 x在 Y中都能確定唯一元素 y與之對應,則稱 f為 X到 Y的對映,記 作 f: x→y X:{0,1,2,3}→Y:{0,2,4,6};有 f: x→y 即 y=f[x]=2x 函式y=f[x] 定義:數集 D
【python基礎】python基礎5+6(set,函式,裝飾器,偏函式,異常處理)
一. python基礎5(set,函式) 1.1set型別 '''set 類似dict,,是一組key的集合,不儲存value 本質: 無序和無重複元素的集合,可以用來去重複 ''' #建立 #建立set需要一個list或tuple作為輸入 #set重複元組在set中會
模板類,模板成員函式,模板巢狀類
在模板類中宣告一個模板成員函式,定義方式:.h檔案 template <typename T, std::size_t N> struct MsgOperaTrait : MsgOperaBase { enum {MSGID = N}; t
python學習筆記:集合set,函式基礎
1、遍歷字典 for k,v in d: 則k,v分別是字典中鍵值對的鍵和值 2、字典的推導式 比如d = {x:x**2 for x in range(10)} &nb
類一定要定義拷貝建構函式,特別是在類成員含有指標的情況(不論指標是何種型別),安全!!!
using namespace std; class people { private:char *name;int age; public:people(char *namestr,int i);/*people( const people& temp);*/~people();char *get
王亟亟的Python學習之路(五)-dictionary,set,函式,函式引數
-dictionary -set -函式 -函式引數 dictionary 鍵-值(key-value)儲存,具有極快的查詢速度。為什麼反覆提起查詢速度,因為如果你一個用list只是為了獲取裡面X元素內容的話效能是相對比較查的,極力推薦
小結下:Maltba中的匿名函式,函式函式,子函式以及feval函式
1:匿名函式 引數 函式體 %匿名函式 [email protected](x)sin(x); y1=myfun1(0); y2=myfun1(0:0.01:2*pi); plot(y2) 變數空間結果為: 2:子函式 見註釋 functi
highcharts click事件獲取資料傳給datagrid ,動態載入資料
點選highcharts的柱子 會觸發click事件,並將資料傳給後臺獲取到相應部門下的所有員工資訊顯示在datagrid 如下:新增在charts的初始化裡 [java] view plain copy
究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒?
究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒? Note:一旦呼叫函式,中途無法取消。 思路一:讓其執行在獨立執行緒內。加超時時間。 1. 在超時時間內函式有返回值,則函式執行結束。則獨立執行緒結束。 2. 在超時時
c# 子類改變父類資訊的問題,兩個窗體類傳值的問題
固定一個窗體在另一個窗體中首先需要設定父窗體IsMdiContainer屬性為True,然後在Load事件中加入以下語句: NewContact newConFrm = new NewContact(this); newConFrm.NewGroup = CreateGroup;
20181128(閉包函式,函式巢狀,名稱空間,作用域,裝飾器待補充)
一、函式物件 在面向物件的程式設計中 一切皆物件 具體的體現: 1.函式可以被引用 def bar(): print('from bar')f=barf()輸出結果為:from bar 2.函式可以作為函式的引數 def bar():
102_js筆記5_js的函式(普通函式,匿名函式,箭頭函式,回撥函式,函式的提升,自調函式)
一,函式的定義和使用 1) 函式宣告方式 function add(num1,num2){ return num1+num2; } function add(num1,num2){ return num1+num2; }
演算法優化(1):基礎知識-凸集,單峰函式,擬凸函式與凸函式,函式凹凸性定義
本文筆記介紹我最近學習的演算法優化的基礎知識,有: 最優化問題的一般形式 約束問題的分類及形式 優化問題的分類 單峰函式(Unimodal function)的定義 擬凸函式(Quasiconvex function)的定義
熟悉Java String的使用,熟悉String的各種函式,Java中各種變數型別
1.JDK 6和JDK 7中substring的原理及區別 substring(int beginIndex, int endIndex)方法擷取字串並返回其[beginIndex,endIndex-1]範圍內的內容。 String x = "abcdef"; x = x.substri