python 方法中的變數與self 變數的區別

2021-10-25 19:04:49 字數 1842 閱讀 2745

定義或呼叫類的attribute or method時,要加self。他們是類的「屬性」,例項化後可以通過object.attribute, object.method()的方法使用。

定義或呼叫類的區域性變數或方法的區域性變數時,不加self,如果是類的區域性變數,那麼在類內都可以訪問,但他不是類的屬性,所以不能以例項化(object.attribute)的方式訪問;如果是方法的區域性變數,那麼在方法內都可以訪問。

>>

>

class

aaa(

object):

...def

go(self):.

.. self.one =

'hello'..

.>>

>

class

bbb(

object):

...def

go(self):.

.. one =

'hello'..

.>>

> a1 = aaa(

)>>

> a1.go(

)>>

> a1.one

'hello'

>>

> a2 = aaa(

)>>

> a2.one

traceback (most recent call last)

: file ""

, line 1,in

attributeerror:

'aaa'

object has no attribute 'one'

>>

> a2.go(

)>>

> a2.one

'hello'

>>

> b1 = bbb(

)>>

> b1.go(

)>>

> b1.one

traceback (most recent call last)

: file ""

, line 1,in

attributeerror:

'bbb'

object has no attribute 'one'

>>

> bbb.one

traceback (most recent call last)

: file ""

, line 1,in

attributeerror:

type

object

'bbb' has no attribute 'one'

>>

>

class

bbb(

object):

...def

go(self):.

.. one =

'hello'..

.print one..

. self.another = one..

.>>

> b2 = bbb(

)>>

> b2.go(

)hello

>>

> b2.another

'hello'

>>

> b2.one

traceback (most recent call last)

: file ""

, line 1,in

attributeerror:

'bbb'

object has no attribute 'one'

reference:

python 類中的變數 方法

一.python 類中的變數分為類變數,例項變數,self coding utf 8 class a object date 20201215 類變數 def init self self.name stephen 例項變數 def str self return self.date self.na...

Python中的類與變數

定義類 class student 居然有括號 name 定義變數 age 0 def print file self 定義函式,self 是必須的 print name self.name 引用變數也要加self print file 使用類的方法 例項化 student student stud...

python中的變數與常量

不管在python還是在其他語言,最終目的都是為了對資料進行處理。那麼這些資料儲存到 呢?實際上就是儲存在變數與常量當中.簡而言之,變數與常量都是用來儲存資料的容器。在建立的時候都會在記憶體中開闢一塊空間,用於儲存它的值。python中的變數不需要宣告型別 弱型別語言,動態語言 每個變數在使用前都必...