校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Python類的高級函數詳解

Python類的高級函數詳解

熱門標簽:湛江智能外呼系統廠家 百度地圖標注沒有了 地圖標注審核表 ai電銷機器人源碼 外呼并發線路 ai電話機器人哪里好 宿遷星美防封電銷卡 西藏房產智能外呼系統要多少錢 長沙高頻外呼系統原理是什么

__str__函數

  • 如果定義了該函數,當print當前實例化對象的時候,會返回該函數的return信息
  • 可用于定義當前類的描述信息
  • 用法:
def __str__(self):
	return str_type
  • 參數:無
  • 返回值:一般返回對于該類的描述信息

__getattr__函數

  • 當調用的屬性或者方法不存在時,會返回該方法定義的信息
  • 用法:
def __getattr__(self, key):
	print(something.….)
  • 參數:

key: 調用任意不存在的屬性名

  • 返回值:

可以是任意類型也可以不進行返回

__setattr__函數

  • 攔截當前類中不存在的屬性與值
  • 用法:
def __settattr__(self, key,value):
	self._dict_[key] = value
  • 參數:

key當前的屬性名

value 當前的參數對應的值

  • 返回值: 無

__call__函數

  • 本質是將一個類變成一個函數
  • 用法:
def __call__(self,*args,**kwargs):
	print( 'call will start')
  • 參數: 可傳任意參數
  • 返回值: 與函數情況相同可有可無

實戰

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time     : 2021/8/15 18:22
# @Author   : InsaneLoafer
# @File     : object_func.py

class Test(object):

    def __str__(self):
        return 'this is a test class'

    def __getattr__(self, key):
        return '這個key:{}并不存在'.format(key)

    def __setattr__(self, key, value):
        print(key, value)
        self.__dict__[key] = value
        print(self.__dict__)

    def __call__(self, *args, **kwargs):
        print('call will start')
        print(args, kwargs)

t = Test()
print(t)
print(t.a)  # 不存在的對象會直接打印出來,而不是報錯
t.name = 'insane'
t(123, name='loafer')


"""實現鏈式操作"""
class Test2(object):
    def __init__(self, attr=''):
        self.__attr = attr

    def __call__(self, name):
        print('key is {}'.format(self.__attr))
        return name

    def __getattr__(self, key):
        if self.__attr:
            key = '{}.{}'.format(self.__attr, key)
        else:
            key = key
        print(key)
        return Test2(key)  # 遞歸操作

t2 = Test2()
print(t2.a.c('insane'))
this is a test class
這個key:a并不存在
name insane
{'name': 'insane'}
call will start
(123,) {'name': 'loafer'}
a
a.c
key is a.c
insane

Process finished with exit code 0

到此這篇關于Python類的高級函數的文章就介紹到這了,更多相關Python高級函數內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 類相關概念理解
  • Python入門變量的定義及類型理解
  • python學習之新式類和舊式類講解
  • python入門課程第四講之內置數據類型有哪些
  • Python的內置數據類型中的數字
  • 一篇文章帶你了解Python中的類

標簽:寧夏 大同 盤錦 林芝 漯河 普洱 南平 海南

巨人網絡通訊聲明:本文標題《Python類的高級函數詳解》,本文關鍵詞  Python,類,的,高級,函數,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python類的高級函數詳解》相關的同類信息!
  • 本頁收集關于Python類的高級函數詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 江西省| 贵州省| 奈曼旗| 曲周县| 海兴县| 弥渡县| 盐城市| 临泽县| 页游| 房产| 美姑县| 南木林县| 刚察县| 邹城市| 丰县| 防城港市| 宽甸| 林州市| 普安县| 海城市| 赣榆县| 南宁市| 曲周县| 舟曲县| 灌阳县| 来宾市| 米易县| 菏泽市| 余江县| 滁州市| 穆棱市| 渭源县| 容城县| 安新县| 云龙县| 砚山县| 句容市| 江阴市| 娄底市| 仁怀市| 石屏县|