類的裝飾器

1 使用類定義裝飾器

class Person(object):def  __init__(self):self._age = 0@propertydef age(self):return self._age@age.setterdef age(self,newValue):print('觸發了嗎')self._age = newValuep = Person()
print(p.age)  #  0
p.age = 20
print(p.age) # 20

2 類屬性

class Person():def __init__(self):self._age =10def get_age(self):return self._agedef set_age(self,newValue):self._age = newValueage = property(get_age,set_age)p = Person()
print(p._age) # 10
p.set_age(20)
print(p._age) # 20

3 上下文管理器

class File():def __init__(self,file_name,file_mode):self.fileName = file_nameself.fileMode = file_modedef __enter__(self):print('進入上文方法')self.file = open(self.fileName,self.fileMode)return self.filedef __exit__(self, exc_type, exc_val, exc_tb):print('進入下午方法')self.file.close()if __name__ =="__main__":with 語句 結合上下文 管理器對象使用 with File('log.txt','r') as file:file_data = file.read()print(file_data)

4? 使用contextmanager裝飾器?

@contextmanager
def my_open(path,mode):try:file = open(path,mode)yield fileexcept Exception as e:print(e)finally:file.close()with my_open('log.txt','r') as file:file_data = file.read()print(file_data)

5? 生成器的創建方式:

my_generator = (i*2 for i in range(3))
print(my_generator)
print(next(my_generator)) # 0
print(next(my_generator)) # 2
print(next(my_generator)) # 4

my_generator = (i*2 for i in range(3))while True:try:value = next(my_generator)print(value)  #0 2 4 except Exception as e:break
def my_generator():for i in range(10):print('開始生成數據')yield i # 函數中有yieid 代表生成了生成器result = my_generator()while True:try:value = next(result)print(value)except Exception as e:breakfinally:print('執行完了')6 悲波那契數列
def f(num):a = 0b = 1current_index = 0while current_index < num:result = aa,b = b, a+bcurrent_index += 1yield resultf1 = f(5)
for value in f1:print(value)

7? 關于深淺拷貝

cory為淺拷貝函數?

import copya = 10b = copy.copy(a)print(id(a)) 140705368775384print(id(b)) 140705368775384b = 20print(a)  # 10
print(b) # 20 

list1 = [1,2,3,4,5,6,7] list2 = copy.copy(list1)print(id(list1)) # 1980239763648
print(id(list2)) # 1980239761792list2.append(8)print(list2)  # [1, 2, 3, 4, 5, 6, 7, 8]print(list1) # [1, 2, 3, 4, 5, 6, 7]
list1 = [1,2,3,4,5,6,7,[8,9,10]]list2 = copy.copy(list1)print(id(list1)) # 1980239763648
print(id(list2)) # 1980239761792list2[7][1] = 11print(list2)  # [1, 2, 3, 4, 5, 6, 7, [8, 11, 10]]print(list1)  # [1, 2, 3, 4, 5, 6, 7, [8, 11, 10]]

深拷貝 :deepcopy

list1 = [1,2,3,4,5,6,7,[8,9,10]]list2 = copy.deepcopy(list1)print(id(list1)) # 1980239763648
print(id(list2)) # 1980239761792list2[7][1] = 11print(list2)  # [1, 2, 3, 4, 5, 6, 7, [8, 11, 10]]print(list1)  # [1, 2, 3, 4, 5, 6, 7, [8, 9, 10]]

8 正則表達式 re模塊

import re

result = re.match(正則表達式,要匹配的字符串)

result.group()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35976.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35976.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35976.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript學習筆記(二)

12、數字 常規用法和java的用法相似&#xff0c;就不再做詳細的記錄, JavaScript 數字 以下只記錄特殊用法&#xff1a; 12.1 數字字符串運算 在所有數字運算中&#xff0c;JavaScript 會嘗試將字符串轉換為數字&#xff1a; var x "100"; var y "10"…

探索QCS6490目標檢測AI應用開發(一):Yolov8n模型轉換及量化

目標檢測&#xff08;Object Detection&#xff09;是計算機視覺領域的核心任務之一&#xff0c;它旨在識別圖像中的物體并確定其位置&#xff0c;在本期的文章中&#xff0c;我們用一個端到端的目標檢測AI應用為例子。介紹如何在QCS6490 Ubuntu系統上實現一個目標檢測應用開發…

第 5 章理解 ScrollView 并構建 Carousel UI

通過上一章的學習,我相信你現在應該明白如何使用堆棧構建復雜的 UI。當然,在你掌握 SwiftUI 之前,你還需要大量的練習。因此,在深入研究 ScrollView 以使視圖可滾動之前,讓我們先以一個挑戰開始本章。你的任務是創建一個類似于圖 1 所示的卡片視圖。 …

如何遷移R包

遷移R包涉及將一個或多個R包從一個系統轉移到另一個系統。以下是遷移R包的詳細步驟&#xff1a; 1. 確定要遷移的R包 首先&#xff0c;列出你在當前系統中安裝的所有R包&#xff0c;或僅列出你需要遷移的R包。你可以使用以下代碼列出所有安裝的R包&#xff1a; installed_pa…

swp添加池子addLiquidity失敗

案發現場 首次添加交易對、一直失敗、但是也沒提示具體的原因。到這一步就沒了、由下圖可知、也沒看到log、由此可見第一步就失敗了。 解決方案 一、添加 工廠KywFactory 添加如下 bytes32 public constant INIT_CODE_PAIR_HASH keccak256(abi.encodePacked(type(KywPair…

移植對話框MFC

VC版 MFC程序對話框資源移植 以下均拷貝自上面&#xff0c;僅用來記錄 &#xff08;部分有刪除&#xff09; 法1&#xff1a; Eg&#xff1a;將B工程調試好的對話框移植到A工程中 1.資源移植 1.1 在2017打開B工程,在工作區Resource標簽頁中選中Dialog文件夾下的資源文件,按…

注意!短視頻的致命誤區,云微客教你避開!

為什么你做短視頻就是干不過同行&#xff1f;因為你總想著拍劇情、段子這些娛樂視頻&#xff0c;還想著當網紅做IP人設&#xff0c;但是這些內容跟你的盈利沒有半毛錢關系&#xff0c;況且難度大、見效慢&#xff0c;還不是精準客戶。 以上這些就代表你走進了短視頻的誤區&…

C++初學者指南-2.輸入和輸出---流輸入和輸出

C初學者指南-2.輸入和輸出—流輸入和輸出 文章目錄 C初學者指南-2.輸入和輸出---流輸入和輸出1.定制輸入/輸出1.1 示例&#xff1a;點坐標輸入/輸出1.2 流操作符1.3&#xff08;一部分&#xff09;標準庫流類型 2. 工具2.1 用getline讀取行 2.2 用ignore進行跳轉2.3 格式化操作…

【論文閱讀】-- Temporal Summary Images:通過交互式注釋生成和放置實現敘事可視化的方法

Temporal Summary Images: An Approach to Narrative Visualization via Interactive Annotation Generation and Placement 摘要1 引言2 背景及相關工作2.1 敘事可視化和講故事2.2 顯示面向時間的數據2.3 小倍數和漫畫2.4 注釋可視化 3 設計要求和工作流程3.1 工作流程3.2 TSI…

基線核查--滲透

基線檢查 基線核查概念 it中定義&#xff1a; 基線為初始的標準&#xff0c;以后更改就要經過授權&#xff0c;形成下一基線。 軟件配置管理的基線&#xff1a;1功能基線&#xff0c;分配基線&#xff0c;產品基線 安全配置基線--基線核查 安全基線可以說是木桶理論&…

【python】eval函數

1.eval函數的語法及用法 &#xff08;1&#xff09;語法&#xff1a;eval(expression) 參數說明&#xff1a; expression&#xff1a;必須為字符串表達式&#xff0c;可為算法&#xff0c;也可為input函數等。 說明&#xff1a;表達式必需是字符串&#xff0c;否則會報錯&a…

Vue3-尚硅谷筆記

1. Vue3簡介 2020年9月18日&#xff0c;Vue.js發布版3.0版本&#xff0c;代號&#xff1a;One Piece&#xff08;n 經歷了&#xff1a;4800次提交、40個RFC、600次PR、300貢獻者 官方發版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…

Dubbo運行原理

目錄 Dubbo通訊協議 Dubbo負載均衡策略 RPC和HTTP有什么區別&#xff1f; 讓你設計一個RPC框架&#xff0c;如何考慮數據序列化問題&#xff1f; Dubbo 是一款高性能、輕量級的開源 RPC&#xff08;遠程過程調用&#xff09;框架&#xff0c;主要用于構建分布式服務和微服務…

springcloud第4季 springcloud-alibaba之openfegin+sentinel整合案例

一 介紹說明 1.1 說明 1.1.1 消費者8081 1.1.2 openfegin接口 1.1.3 提供者9091 9091微服務滿足&#xff1a; 1 openfegin 配置fallback邏輯&#xff0c;作為統一fallback服務降級處理。 2.sentinel訪問觸發了自定義的限流配置&#xff0c;在注解sentinelResource里面配置…

基于SpringBoot的學生綜合測評系統

你好呀&#xff0c;我是計算機學姐碼農小野&#xff01;如果有相關需求&#xff0c;可以私信聯系我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;SpringBoot框架 工具&#xff1a;MyEclipse、Tomcat 系統展示 首頁 系統首頁&#xff0c;提供綜合…

After Effects 2024 mac/win版:創意視效,夢想起航

After Effects 2024是一款引領視效革命的專業軟件&#xff0c;匯聚了創意與技術的精華。作為Adobe推出的全新版本&#xff0c;它以其強大的視頻處理和動畫創作能力&#xff0c;成為從事設計和視頻特技的機構&#xff0c;如電視臺、動畫制作公司、個人后期制作工作室以及多媒體工…

求職產品運營的個人簡歷案例(精選篇)

在求職產品運營的道路上&#xff0c;一份出色的個人簡歷是邁向成功的第一步&#xff0c;但是簡歷怎么寫才最好呢&#xff1f;下面是小編整理的求職產品運營的個人簡歷案例&#xff0c;同時&#xff0c;幻主簡歷網還提供精美簡歷模板下載和簡歷在線制作工具&#xff0c;歡迎大家…

Kivy tutorial 008: More kv language

Kivy tutorial 008: More kv language – Kivy Blog Central themes: Event binding and canvas instructions in kv language 中心主題: 事件綁定 和 kv語言里的畫布結構 This tutorial directly follows on from the previous, so start by retrieving the previous code, …

meizu M10 魅藍 10 mblu10 root 解鎖 安裝LSPosed框架 紫光展銳改串 AT命令 一鍵新機 改機軟件 硬改 改參數

meizu M10 魅藍 10 mblu10 root 解鎖 安裝LSPosed框架 紫光展銳改串 AT命令 一鍵新機 改機軟件 硬改 改參數 ro.system.build.version.release11 ro.system.build.version.release_or_codename11 ro.system.build.version.sdk30 ro.system.custom.versionAndroid_M01 ro.prod…

python目錄樹生成器

代碼如下&#xff1a; import os from colorama import Fore, Style, init from tkinter import Tk, Label, Entry, Button, Text, Scrollbar, RIGHT, Y, END# 初始化 colorama init(autoresetTrue)def print_directory_tree(root_dir, text_widget, indent, lastTrue):"…