You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自定义类中实现startswith函数以处理类内字符串?

解决自定义类实例调用startswith的问题

嗨,我来帮你搞定这个问题!你遇到的核心问题是:startswith()是Python字符串的内置方法,你的自定义类本身并没有实现这个方法,所以直接对类实例调用肯定会报错。下面给你两种简单的解决方案:

方案1:访问自定义类中的字符串属性再调用startswith

最直接的方式就是先拿到类实例里存储字符串的那个属性,再对这个属性调用startswith()。假设你的自定义类里有个叫url的属性用来存字符串,示例代码如下:

定义自定义类

class CustomURL:
    def __init__(self, url, other_data=None):
        self.url = url  # 这是存储目标字符串的属性
        self.other_data = other_data  # 类的其他属性

初始化你的URLData列表

URLData = [
    CustomURL("https://stackoverflow.com"),
    CustomURL("http://example.com"),
    CustomURL("ftp://test.net")
]

循环检查的代码

# 遍历URLData中的每个类实例
for data_item in URLData:
    # 先访问实例的url属性,再调用startswith
    if data_item.url.startswith("https://"):
        print(f"匹配到HTTPS链接:{data_item.url}")
    elif data_item.url.startswith("ftp://"):
        print(f"匹配到FTP链接:{data_item.url}")

方案2:给自定义类添加startswith方法

如果你希望能直接对类实例调用startswith(),可以在自定义类里实现这个方法,让它内部代理到存储字符串的属性上。这样代码会更简洁:

改进后的自定义类

class CustomURL:
    def __init__(self, url, other_data=None):
        self.url = url
        self.other_data = other_data

    # 实现startswith方法,转发给内部的url属性
    def startswith(self, prefix, start=0, end=None):
        return self.url.startswith(prefix, start, end)

现在循环代码可以直接调用实例的startswith

for data_item in URLData:
    if data_item.startswith("https://"):
        print(f"匹配到HTTPS链接:{data_item.url}")

这样两种方式都能解决你的问题,你可以根据自己的代码风格选择合适的方案~

内容的提问来源于stack exchange,提问作者Talha Shafique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:30:58