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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python成员方法共享吗_python 入坑路 类的特殊成员方法

發(fā)布時間:2024/9/19 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python成员方法共享吗_python 入坑路 类的特殊成员方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、概述

前面我們講了類的方法,有普通方法,就是我們自己定義的方法,還有靜態(tài)方法,類方法,屬性方法,

其實還有另一類方法,叫做類的特殊成員方法

二、類的特殊成員方法

2.1 __doc__? ,表示類的描述信息

class Dog(object):

'''

dog class #__doc__ 就是打印這里的信息

'''

def __init__(self,name):

self.name=name

self.age=None

self.__sex=None

def walk(self):

print("%s is walking..." %self.name)

d=Dog("niubi")

print(d.__doc__)

-----輸出----

dog class

2.2 __module__和__class__

說明:

作用:當多次引用的時候,查看是從哪里導入的。沒啥卵用

__module__: 表示當前操作的對象在哪個模塊

__class__:表示當前操作的對象的類是什么

2.3?__init__

說明:構造方法,通過類創(chuàng)建對象時,自動觸發(fā)執(zhí)行

2.4 __del__

說明:析構方法,當對象在內存中被釋放時,自動觸發(fā)執(zhí)行

2.5__call__

class Foo(object):

def __init__(self):

self.name = "nb"

def __call__(self, *args, **kwargs): # 重寫call方法

print("running call", args, kwargs)

f = Foo() # 執(zhí)行__init__

f(1, 2, 3, name="nb") # 執(zhí)行call方法,也可以寫成 Foo()(1,2,3,name="nb")

---

running call (1, 2, 3) {'name': 'nb'}

2.6__dict__? ,挺有用

類.__dict__ 查看類中所有方法成員

class Dog(object):

'''

dog class

'''

def __init__(self,name):

self.name=name

self.age=None

self.__sex=None

def walk(self):

print("%s is walking..." %self.name)

def eat(self,food):

print("%s is eating %s" %(self.name,food))

def age(self,age):

self.age=age

def sex(self):

return self.__sex

d=Dog("NIUBI")

print(Dog.__dict__)

=======

{'__module__': '__main__', '__doc__': '\n dog class\n ', '__init__': , 'walk': , 'eat': , 'age': , 'sex': , '__dict__': , '__weakref__': }

實例.__dict__? :打印出類中所有屬性,不包括類屬性。

class Dog(object):

'''

dog class

'''

class_shuxing="hehe" #這個類屬性沒有被打印出來

def __init__(self,name):

self.name=name

self.age=None

self.__sex=None

def walk(self):

print("%s is walking..." %self.name)

def eat(self,food):

print("%s is eating %s" %(self.name,food))

def age(self,age):

self.age=age

def sex(self):

return self.__sex

d=Dog("NIUBI")

#print(Dog.__dict__)

print(d.__dict__)

==============

{'name': 'NIUBI', 'age': None, '_Dog__sex': None}

#不包括類屬性

2.7 __str__? ,

如果一個類中定義了__str__方法,那么在打印 對象 時,默認輸出該方法的返回值 ,據(jù)說 Djiango 中很長用,以后詳解

class test(object):

def __init__(self,name):

self.name=name

def __str__(self):

return "".format(self.name)

d=test("hehe")

print(d)

--------------

2.8??__getitem__、__setitem__、__delitem__

說明:用于索引操作,如字典。以上分別表示獲取、設置、刪除數(shù)據(jù)

作用:據(jù)說可以用類封裝一些東西,然后暴露給用戶一個字典,在類中控制用戶對字典操作的權限。

class test(object):

def __getitem__(self, item):

print("getitem",item)

def __setitem__(self, key, value):

print("setitem",key,value)

def __delitem__(self, key):

print("delete",key)

t=test()

t["name"]

t["name"]="nb"

del t["name"]

-----------------

getitem name

setitem name nb

delete name #注:這邊的__delitem__沒有做真正的刪除,只是觸發(fā)這個方法,想要真正刪除,只需要在__delitem__函數(shù)中添加刪除功能即可

總結

以上是生活随笔為你收集整理的python成员方法共享吗_python 入坑路 类的特殊成员方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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