日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python @修饰符_Python基础(面向对象之类成员与修饰符)

發(fā)布時(shí)間:2025/3/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python @修饰符_Python基础(面向对象之类成员与修饰符) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本篇將介紹Python 類的成員、類成員修飾符、類的特殊成員。

類的成員可以分為三大類:字段、方法、屬性

1、字段:

也可理解為變量,分為:

普通字段:保存在對(duì)象中,訪問時(shí)通過“對(duì)象.字段名”訪問。

靜態(tài)字段:保存在類中,訪問時(shí)通過“類.字段名”訪問。

例子:class Person(object): #繼承object類說明是一個(gè)新式類

country = 'China' #靜態(tài)字段

def __init__(self,name):

print 'Person build self.name'

self.name = name #普通字段

p1 = Person('lily')

print p1.name #對(duì)象.字段訪問普通字段

print Person.country #類.字段訪問靜態(tài)字段

#執(zhí)行結(jié)果:

Person build self.name

lily

China

2、方法:

也可理解為函數(shù),分為:

普通方法:由對(duì)象調(diào)用,至少有一個(gè)self參數(shù),必須先創(chuàng)建對(duì)象才能執(zhí)行,執(zhí)行方式為:對(duì)象.方法

靜態(tài)方法:由類調(diào)用,參數(shù)任意,定義方式是在方法上加一個(gè)staticmethod裝飾器,其實(shí)就是通過面向?qū)ο蟮姆绞絹矶x函數(shù)。執(zhí)行方式為:類.方法

類方法:由類調(diào)用,至少有一個(gè)cls參數(shù),定義方式是在方法上加一個(gè)classmethod裝飾器。執(zhí)行方式為:類.方法

例子:class Person(object):

country = 'China'

def __init__(self,name):

print 'Person build self.name'

self.name = name

def say(self): #定義普通方法,至少有一個(gè)self參數(shù)

print 'Normal say: %s'%self.name

@staticmethod

def static_say(name): #定義靜態(tài)方法,參數(shù)任意

print 'Static say: %s'%name

@classmethod

def class_say(cls,name): #定義類方法,至少有一個(gè)cls參數(shù)

print 'Class say: %s'%name

#調(diào)用普通方法

p1 = Person('Lily')

p1.say()

#調(diào)用靜態(tài)方法

Person.static_say('Lucy')

#調(diào)用類方法

Person.class_say('Lilei')

#執(zhí)行結(jié)果

Person build self.name

Normal say: Lily

Static say: Lucy

Class say: Lilei

3、屬性:

作用就是把普通方法偽裝成字段,定義方式為在普通方法上加一個(gè)property裝飾器,僅有一個(gè)self參數(shù),調(diào)用時(shí)無須括號(hào)。

例子:class Person(object):

country = 'China'

def __init__(self,name):

print 'Person build self.name'

self.name = name

def say1(self): #普通方法

print 'Say1: %s'%self.name

@property

def say2(self): #定義屬性

return 'Say2: %s'%self.name

p1 = Person('Lily')

p1.say1() #普通方法調(diào)用方式

ret = p1.say2 #屬性調(diào)用方式

print ret

#運(yùn)行結(jié)果:

Person build self.name

Say1: Lily

Say2: Lily

類成員修飾符

對(duì)每一個(gè)類的成員而言都有兩種形式:公有成員、私有成員

公有成員:任何地方都能訪問

私有成員:只有在類的內(nèi)部才能訪問,定義方式為命名時(shí),前兩個(gè)字符為下劃線,如 "__test"

例子:class Person(object):

country = 'China' #靜態(tài)字段,屬于公有成員

__planet = 'Earth' #靜態(tài)字段,屬于私有成員

def __init__(self,name):

print 'Person build self.name'

self.name = name

def say(self):

print 'The planet is %s'%Person.__planet #在類的內(nèi)部訪問私有靜態(tài)字段

p1 = Person('Nothing')

p1.say()

print p1.country #訪問公有靜態(tài)字段

print p1.__planet #訪問私有靜態(tài)字段

#執(zhí)行結(jié)果:

Person build self.name

The planet is Earth #在類的內(nèi)部可以訪問

print p1.__planet

China #外部可以訪問公有靜態(tài)字段

AttributeError: 'Person' object has no attribute '__planet' #外部無法訪問私有靜態(tài)字段

類的特殊成員(詳細(xì)用法例子后期補(bǔ)上):

__doc__ 表示類的描述信息

__module__ 表示當(dāng)前操作的對(duì)象在那個(gè)模塊

__class__ 表示當(dāng)前操作的對(duì)象的類是什么

__init__ 構(gòu)造方法,通過類創(chuàng)建對(duì)象時(shí),自動(dòng)觸發(fā)執(zhí)行

__call__ 對(duì)象后面加括號(hào),觸發(fā)執(zhí)行。

__dict__ 類或?qū)ο笾械乃谐蓡T

__str__ 如果一個(gè)類中定義了__str__方法,那么在打印 對(duì)象 時(shí),默認(rèn)輸出該方法的返回值。

總結(jié)

以上是生活随笔為你收集整理的python @修饰符_Python基础(面向对象之类成员与修饰符)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。