我有以下课程:
# -*- 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'
答案 0 :(得分:2)
os.path.join()
接受字符串,而不接受自定义Path
类的实例。您需要访问两个对象的path
属性。
def __add__(self, other):
return os.path.join(self.path, other.path)