I've searched the site, it is true there are other topics with the same name and the same problems, but I tried to read and apply the changes to my program with no results, so I decided to open a new one.
I need to create a class Pixels (which I created with no problem), and a class PImage, which instead I found the problem:
(carry only the most important methods)
class Pixel:
class Pixel(object):
    def __init__(self, r, g, b, op): // op = opacity
        self.r, self.g, self.b, self.op = r, g, b, op
    def __sub__(self, other):
        return self.r-other.r,self.g-other.g,self.b-other.b
class PImage
class PImage(object):
    def __init__(self, fname=None, size=None):
        if(fname!=None):
            img_app = image.load(fname)
            self.immagine = img_app
            w, h = len(img_app[0]), len(img_app)
            for j in range(h):
                for i in range(w):
                    self.immagine[j][i] = [Pixel(img_app[j][i][0], img_app[j][i][1], img_app[j][i][2], 255)]
        elif(size!=None):
            self.immagine = image.create(size[0], size[1], (0,0,0, 255))
    def size(self):
        return len(self.immagine[0]), len(self.immagine)
    def get_pixel(self, x, y):
        if image.inside(x, y, self.immagine):
            return self.immagine[y][x]
        else:
            return None
    def opacity(self, x, y, t=150):
        w, h = len(self.immagine[0]), len(self.immagine)
        for j in range(h):
            for i in range(w):
                d = abs(self.get_pixel(x, x) - x) + abs(self.get_pixel(y, y) - y) + abs(self.immagine[j][i][0] - self.immagine[y][x][0]) + abs(self.immagine[j][i][1] - self.immagine[y][x][1]) + abs(self.immagine[j][i][2] - self.immagine[y][x][2])
                self.immagine[j][i][3] = (d*self.immagine[j][i][3])/(d + t)
The variable d, I have to apply a formula made up as follows (here I get out of the error):
d = abs (xp - x) + abs (yp - y) + abs (rp - r) + abs (gp - g) + abs (bp - b)
where (xp, yp), (rp, gp, bp) op are, respectively, the position, color and
   the opacity of p, and (r, g, b) is the color of the pixel in position (x, y).
Traceback:
I tried manually, and when the program calls words.opacity(100, 160), the program returns the error
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-16-3e2e34f8ee0f> in <module>()
----> 1 words.opacity(100, 160)
/home/user/Scrivania/python/program01.py in opacity(self, x, y, t)
155             for i in range(w):
156                 #d = abs(self.immagine[j][i].x - x) + abs(self.immagine[j][i].y - y) + abs(self.immagine[j][i][0] - self.immagine[y][x][0]) + abs(self.immagine[j][i][1] - self.immagine[y][x][1]) + abs(self.immagine[j][i][2] - self.immagine[y][x][2])
--> 157                 d = abs(self.get_pixel(x, x) - x) + abs(self.get_pixel(y, y) - y) + abs(self.immagine[j][i][0] - self.get_pixel[y][x][0]) + abs(self.immagine[j][i][1] - self.immagine[y][x][1]) + abs(self.immagine[j][i][2] - self.immagine[y][x][2])
158                 self.immagine[j][i][3] = (d*self.immagine[j][i][3])/(d + t)
159 
/home/user/Scrivania/python/program01.py in get_pixel(self, x, y)
145 
146     def get_pixel(self, x, y):
--> 147         if image.inside(x, y, self.immagine):
148             return self.immagine[y][x]
149         else:
/home/user/Scrivania/python/image.pyc in inside(img, i, j)
 78     '''Ritorna True se il pixel (i, j) e' dentro l'immagine img, False
 79     altrimenti'''
---> 80     w, h = len(img[0]), len(img)
 81     return 0 <= i < w and 0 <= j < h
 82 
TypeError: 'int' object has no attribute '__getitem__' 
Where the function inside of the image.pyc packet is:
def inside(img, i, j):
w, h = len(img[0]), len(img)
return 0 <= i < w and 0 <= j < h
				
                        
2 problems:
get_pixel()returns aPixelinstance, but you try to substract that with anint. So when you doself.get_pixel(x, x) - x, this runs thePixel.__sub__method withother=x, wherexis an integer. Therefore, when it tries to accessother.r, it fails, asotheris an integer rather than an object with therattribute.self.get_pixel[y][x][0]won't work:self.get_pixelis a method. You probably meanself.get_pixel(y, x).r.