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

歡迎訪問 生活随笔!

生活随笔

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

python

python的特殊类_python - 类的特殊成员方法

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

1)doc 表示類的描述信息

class Dog(object):

"""

這個(gè)類是狗類

"""

def __init__(self, name, food):

self.name = name

self.food = food

d = Dog('xiaoming', 'baozi')

print(d.__doc__)

# 打印結(jié)果

這個(gè)類是狗類

2)module和class

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

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

3)init

構(gòu)造方法

4)del

析構(gòu)方法

5)call

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

注:構(gòu)造方法的執(zhí)行是由創(chuàng)建對(duì)象觸發(fā)的。即:

對(duì)象=類名()

而對(duì)于__call__方法的執(zhí)行是由對(duì)象后面加括號(hào)觸發(fā)的,即:

對(duì)象()

示例:

class Dog(object):

"""

這個(gè)類是狗類

"""

def __init__(self, name, food):

self.name = name

self.food = food

def __call__(self, *args, **kwargs):

print('running call method', args, kwargs)

d = Dog('xiaoming', 'baozi')

d()

d(1, 2, 3, name = "xiaohong")

6)dict

查看類或者對(duì)象中的所有成員

可以通過:

類名.__dict__ # 打印類里面的所有屬性,不包括示例屬性

實(shí)例名.__dict__ # 打印示例所有睡醒,不包括類屬性

7)str()

一般是自定義__str__()方法:

class Dog(object):

"""

這個(gè)類是狗類

"""

def __init__(self, name, food):

self.name = name

self.food = food

def __call__(self, *args, **kwargs):

print('running call method', args, kwargs)

def __str__(self):

return """<

name: %s

food: %s

>

""" %(self.name, self.food)

d = Dog('xiaoming', 'baozi')

print(d.__str__())

8)getitem,setitem,delitem

大多數(shù)時(shí)間都沒有什么用。

9)new 、 metaclass

在Python中一切皆對(duì)象,類也是對(duì)象。

class Foo(object):

def __init__(self, name):

self.name = name

f = Foo("Adoe")

f是通過Foo類實(shí)例化化的對(duì)象。其實(shí)Foo類本身也是一個(gè)對(duì)象,因?yàn)閜ython一切皆對(duì)象。

class Foo(object):

def __init__(self, name):

self.name = name

f = Foo("Adoe")

print (type(f)) #

print (type(Foo)) # Foo就是來自于type

圖片.png

類是由type類實(shí)例化而來的。

type是由python解釋器自己實(shí)現(xiàn)的。

類中有一個(gè)屬性__metaclass__

new是新式類中自帶的,我們進(jìn)入object里面源代碼可以看到。

@staticmethod # known case of __new__

def __new__(cls, *more): # known special case of object.__new__

""" Create and return a new object. See help(type) for accurate signature. """

pass

我們可以重寫new方法。

new在實(shí)例化的時(shí)候也可以自動(dòng)執(zhí)行,而且是在init之前。

初始化實(shí)例的時(shí)候,是首先經(jīng)過new然后才(new里面)調(diào)用init的。

重寫new()方法:

class Foo(object):

def __init__(self, name):

self.name = name

def __new__(cls, *args, **kwargs):

print("==new==")

return object.__new__(cls) # 注意:這個(gè)cls就是Foo類,是一個(gè)類對(duì)象

f = Foo("Adoe")

print(f.name)

總結(jié)

以上是生活随笔為你收集整理的python的特殊类_python - 类的特殊成员方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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