如何在python中__add__路径?

时间:2014-02-17 16:25:44

标签: python oop python-2.7

我有以下课程:

# -*- coding: utf-8 -*-
import os

class Path(object):
    "Docstring"

    @classmethod
    def __init__(self, path = ''):
        "docstring __init__"
        self.path=os.path.normpath(path)


    def __eq__(self, ruta):
        if self.path == ruta:
            return True  
        else:
            return False

    def __add__(self, other):
        return os.path.join(self, other)

我需要使用添加添加两个路径: 路径('/ home /')+路径('pepe')

我有两个问题:

1)如何在添加方法中访问要添加的两个对象的值? 我知道a + b就像调用a.add(b)......

2)在此代码中,返回以下错误:  文件“/home/esufan/anaconda/lib/python2.7/posixpath.py”,第75行,在加入     如果b.startswith('/'): AttributeError:'Path'对象没有属性'startswith'

1 个答案:

答案 0 :(得分:2)

os.path.join()接受字符串,而不接受自定义Path类的实例。您需要访问两个对象的path属性。

def __add__(self, other):
    return os.path.join(self.path, other.path)