成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 單雙下劃線方法在接口自動化中的高級用法(_、__)

開發 前端
今天一起來了解一下python 單雙下劃線方法在接口自動化中的高級用法吧。

使用單下劃線 _ 來封裝內部方法

使用場景:

在一個 HTTP 請求客戶端類中封裝一個內部方法,該方法用于處理請求的響應。

這個方法只應該在類的內部使用,不應該被外部直接調用。

import requests
class HttpClient:
    def __init__(self, base_url):
        self.base_url = base_url
    def _handle_response(self, response):
        if response.status_code != 200:
            raise Exception(f"Request failed with status {response.status_code}")
        return response.json()
    def get(self, endpoint):
        url = f"{self.base_url}/{endpoint}"
        response = requests.get(url)
        return self._handle_response(response)
client = HttpClient("https://api.example.com")
data = client.get("/resources")
print(data)

注意事項:

_handle_response 方法是內部使用的,不應從類外部直接調用。

確保處理所有可能的異常情況。

使用雙下劃線 __ 來實現初始化邏輯

使用場景:

在接口測試類中,使用 __init__ 方法來設置基本的測試配置,比如 URL、認證信息等。

import requests
class TestAPI:
    def __init__(self, base_url, auth_token):
        self.base_url = base_url
        self.auth_token = auth_token
    def test_get_resources(self):
        headers = {'Authorization': f'Bearer {self.auth_token}'}
        response = requests.get(f"{self.base_url}/resources", headers=headers)
        assert response.status_code == 200
test_api = TestAPI("https://api.example.com", "my-token")
test_api.test_get_resources()

注意事項:

確保 __init__ 方法設置了必要的初始化參數。

注意處理可能的認證失敗情況。

使用雙下劃線 __ 來實現字符串表示

使用場景:

在接口測試結果類中,使用 __str__ 方法來自定義輸出格式,便于查看測試結果。

class TestResult:
    def __init__(self, passed, message):
        self.passed = passed
        self.message = message
    def __str__(self):
        status = "Passed" if self.passed else "Failed"
        return f"{status}: {self.message}"
result = TestResult(True, "All tests passed")
print(result)

注意事項:

__str__ 方法應返回易于理解的字符串。

確保測試結果的格式清晰明了。

使用雙下劃線 __ 來實現布爾值轉換

使用場景:

在測試結果類中,使用 __bool__ 方法來判斷測試是否通過。

class TestResult:
    def __init__(self, passed, message):
        self.passed = passed
        self.message = message
    def __bool__(self):
        return self.passed
result = TestResult(True, "All tests passed")
assert bool(result), "Test should pass."

注意事項:

__bool__ 方法應返回布爾值。

注意處理邊緣情況,如未完成的測試等。

使用單下劃線 _ 來封裝內部屬性

使用場景:

在接口測試類中,使用單下劃線 _ 來標記內部使用的屬性,如認證信息。

class TestAPI:
    def __init__(self, base_url, auth_token):
        self.base_url = base_url
        self._auth_token = auth_token
    def test_get_resources(self):
        headers = {'Authorization': f'Bearer {self._auth_token}'}
        response = requests.get(f"{self.base_url}/resources", headers=headers)
        assert response.status_code == 200
test_api = TestAPI("https://api.example.com", "my-token")
test_api.test_get_resources()

注意事項:

單下劃線 _ 標記的屬性不建議從類外部直接訪問。

確保在類內部正確使用這些屬性。

使用雙下劃線 __ 來實現類的實例化

使用場景:

在測試框架中,使用 __new__ 方法來控制類的實例化過程,例如,只允許創建一個實例。

class SingletonTestFramework:
    _instance = None
    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(SingletonTestFramework, cls).__new__(cls)
        return cls._instance
framework = SingletonTestFramework()
another_framework = SingletonTestFramework()
assert framework is another_framework

注意事項:

__new__ 方法用于控制實例的創建過程。

注意單例模式的實現細節。

使用雙下劃線 __ 來實現格式化輸出

使用場景:

在測試報告類中,使用 __format__ 方法來自定義輸出格式。

class TestReport:
    def __init__(self, name, result):
        self.name = name
        self.result = result
    def __format__(self, format_spec):
        if format_spec == "short":
            return f"{self.name}: {self.result}"
        return f"{self.name}: {self.result} (full report)"
report = TestReport("Test Name", "Passed")
print(f"{report:short}")

注意事項:

__format__ 方法應支持不同的格式化選項。

注意處理格式化字符串的解析。

使用雙下劃線 __ 來實現比較操作

使用場景:

在測試結果類中,使用 __eq__ 方法來自定義相等性比較。

class TestResult:
    def __init__(self, passed, message):
        self.passed = passed
        self.message = message
    def __eq__(self, other):
        if isinstance(other, TestResult):
            return self.passed == other.passed and self.message == other.message
        return False
result1 = TestResult(True, "All tests passed")
result2 = TestResult(True, "All tests passed")
assert result1 == result2

注意事項:

__eq__ 方法應正確比較對象的內容。

注意處理不同類型的對象之間的比較。

使用雙下劃線 __ 來實現對象的刪除

使用場景:

在測試框架中,使用 __del__ 方法來清理資源,如關閉連接。

import requests
class TestFramework:
    def __init__(self, session):
        self.session = session
    def __del__(self):
        self.session.close()
session = requests.Session()
framework = TestFramework(session)
del framework

注意事項:

__del__ 方法用于對象銷毀時的資源清理。

注意處理異常情況下的資源釋放。

使用雙下劃線 __ 來實現對象的復制

使用場景:

在測試配置類中,使用 __copy__ 和 __deepcopy__ 方法來自定義淺拷貝和深拷貝行為。

import copy
class TestConfig:
    def __init__(self, name, settings):
        self.name = name
        self.settings = settings
    def __copy__(self):
        return TestConfig(self.name, self.settings.copy())
    def __deepcopy__(self, memo):
        return TestConfig(self.name, copy.deepcopy(self.settings, memo))
config = TestConfig("Test Config", {"key": "value"})
shallow_copy = copy.copy(config)
deep_copy = copy.deepcopy(config)
config.settings["key"] = "changed"
assert config.settings["key"] == "changed"
assert shallow_copy.settings["key"] == "changed"
assert deep_copy.settings["key"] == "value"

注意事項:

__copy__ 和 __deepcopy__ 方法用于自定義復制行為。

注意處理復雜數據結構的復制。

責任編輯:華軒 來源: 測試開發學習交流
相關推薦

2023-11-29 18:11:17

Python代碼

2023-11-09 08:55:17

Python雙下劃線

2021-08-08 22:27:13

Python下劃線方法

2025-06-05 02:43:00

2010-03-04 10:35:51

Python下劃線

2024-02-28 16:04:04

深拷貝Python

2021-07-31 19:21:34

Python下劃線數值

2020-09-22 09:41:48

Python下劃線開發

2021-12-26 22:55:26

Python下劃線編程

2024-04-30 15:05:36

Python接口自動化

2024-08-19 10:21:37

接口Python魔法方法

2021-10-20 07:36:03

Python構造方法

2024-08-16 22:00:38

2013-07-24 19:27:45

iOS開發學習自定義帶下劃線文本UI

2024-01-08 13:31:00

Rust自動化測試

2022-10-09 11:07:40

物聯網如自動化

2021-03-11 14:23:17

云計算混合云工具

2021-03-02 10:55:07

云計算自動化云應用

2024-02-26 00:00:01

?win32WindowsCOM

2022-06-26 09:55:00

接口自動化項目
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人av一区二区三区 | 亚洲欧美中文日韩在线v日本 | 国产成人a亚洲精品 | 国产一区二区自拍 | 色精品视频 | 精品三级在线观看 | 91伊人网| 亚洲第一av | 亚洲精品久久久蜜桃 | 久久一级免费视频 | 国产精品自在线 | 91精品国产91久久久久游泳池 | 激情小视频 | 成人国产在线视频 | 91综合网 | 中文字幕视频在线观看 | 在线国产一区二区 | 盗摄精品av一区二区三区 | 精品一区二区在线看 | 国产欧美精品一区二区三区 | 午夜资源 | 国产欧美一区二区三区久久手机版 | 日日日色| 久久一 | 欧洲精品码一区二区三区免费看 | 黄页网址在线观看 | 狠狠狠色丁香婷婷综合久久五月 | 桃花av在线| 亚洲第一色av| 一区二区三区四区在线 | 国产欧美一区二区三区久久人妖 | 日韩精品在线网站 | 国内自拍偷拍 | 中文字字幕一区二区三区四区五区 | 成人黄色网址大全 | 久久精品国产亚洲 | 91看国产| 精品香蕉一区二区三区 | 视频在线日韩 | 亚洲一区二区在线 | 精品一区精品二区 |