python基礎篇 Class 類

2021-07-26 02:09:16 字數 1889 閱讀 3189

class(類)

特點:乙個抽象的物件,是物件導向語言的核心,類可以不繼承或多繼承。

標識:class

例子:

class a(object):

"""這是乙個演示的類

"""count_a =

def __init__(self, a):

self.a = a

def str(self):

print 'count_a:%s, list_a:%s' % (self.count_a, self.a)

訪問類:

my_a = a(123)

my_a.str()

print my_a.__doc__

# 輸出結果

# count_a:[1], list_a:123

## 這是乙個演示的類

詳解:

count_a: 類a的類變數(全域性變數),可以通過a.count_a或my_a.count_a來訪問,生命週期為類a;

a: 為類a的成員變數,可以通過my_a.a訪問,生命週期為例項my_a。

my_a.___doc__:類的說明注析

在類中以雙下劃線(__)開頭的變數是私有變數(例項是不允許a.__host直接訪問的),以雙下劃線(__)開頭的方法可能是python自帶函式。

類繼承:

class a(object):

"""這是乙個演示的類a

"""count_a =

def __init__(self, a):

self.a = a

def str(self):

print 'count_a:%s, list_a:%s' % (self.count_a, self.a)

class b(a):

"""這是乙個演示類b,繼承了類a

"""def __init__(self, b):

super(b, self).__init__(b) # 初始化父類

self.b = b

def str(self):

print 'count_a:%s, list_a:%s' % (self.count_a, self.a)

my_a = a(123)

my_a.str()

my_b = b(234)

my_b.str()

# 輸出結果

# count_a:[1], list_a:123

# count_a:[1, 1], list_a:234

詳解:

super(b, self).__init__(b):# python新用法所建議的初始胡父類用法

my_b.str類中:繼承了a的count_a和a。

問題:

count_a:[1, 1]竟然是有兩個值?

原因:

因為count_a為a類的成員變數(全域性變數),並且count_a是乙個列表(經測試如果全域性變數為乙個int型別的,輸出結果則為預設值,這可能跟python各型別的儲存使用有關,

字元,元組,數字是不可以更改的物件,列表和字典都是指標)

注意

:當乙個類繼承了兩個或多個類的時候,

super(b, self).__init__(b)只會初始化class b(a, c)中的a

python 類class基礎簡明筆記

感謝莫煩老師 詳情class calculator 首字母要大寫,冒號不能缺 name good calculator 該行為class的屬性 price 18 def add self,x,y print self.name result x y print result def minus se...

python 函式def 和 類class 基礎

函式def python 函式 def 函式名 引數列表 函式體如果引數要指定資料型別,引數名 資料型別 num int str1 str list1 list dict1 dict set1 set def addnum a int b int,c int return a b c defaddn...

python基礎篇 python基礎篇(三)

使用者輸入 bb 歡迎來到中國資訊網,您的支援是我們的動力!bb n請輸入您的名字 aa input bb 此處可先定義變數,也可將要展示的內容直接輸入在裡面 print 歡迎您 aa 輸出歡迎來到中國資訊網,您的支援是我們的動力!請輸入您的名字 張三 輸入 張三 歡迎您 張三!結果 注意1 sub...