婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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類的高級函數詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 长白| 香格里拉县| 襄汾县| 南汇区| 伊川县| 富源县| 繁峙县| 吉隆县| 萝北县| 西昌市| 定南县| 额尔古纳市| 安乡县| 民县| 桃园县| 海淀区| 新乡市| 嵩明县| 赤水市| 通州市| 博客| 平原县| 盈江县| 项城市| 岳池县| 和顺县| 岱山县| 大关县| 东兰县| 宣威市| 年辖:市辖区| 梧州市| 康乐县| 赤壁市| 友谊县| 青海省| 龙岩市| 平武县| 左权县| 和顺县| 弋阳县|