python - 함수 - 파이썬




TypeError:'str'개체를 호출 할 수 없습니다(Python). (8)

암호:

import urllib2 as u
import os as o
inn = 'dword.txt'
w = open(inn)
z = w.readline()
b = w.readline()
c = w.readline()
x = w.readline()
m = w.readline()
def Dict(Let, Mod):
    global str
    inn = 'dword.txt'
    den = 'definitions.txt'

    print 'reading definitions...'

    dell =open(den, 'w')

    print 'getting source code...'
    f = u.urlopen('http://dictionary.reference.com/browse/' + Let)
    a = f.read(800)

    print 'writing source code to file...'
    f = open("dic1.txt", "w")
    f.write(a)
    f.close()

    j = open('defs.txt', 'w')

    print 'finding definition is source code'
    for line in open("dic1.txt"):
        if '<meta name="description" content=' in line:
           j.write(line)

    j.close()

    te = open('defs.txt', 'r').read().split()
    sto = open('remove.txt', 'r').read().split()

    print 'skimming down the definition...'
    mar = []
    for t in te:
        if t.lower() in sto:
            mar.append('')
        else: 
            mar.append(t)
    print mar
    str = str(mar)
    str = ''.join([ c for c in str if c not in (",", "'", '[', ']', '')])

    defin = open(den, Mod)
    defin.write(str)
    defin.write('                 ')
    defin.close()

    print 'cleaning up...'
    o.system('del dic1.txt')
    o.system('del defs.txt')
Dict(z, 'w')
Dict(b, 'a')
Dict(c, 'a')
Dict(x, 'a')
Dict(m, 'a')
print 'all of the definitions are in definitions.txt'

첫 번째 Dict(z, 'w') 작동하고 두 번째로 오류가 발생합니다.

Traceback (most recent call last):
  File "C:\Users\test.py", line 64, in <module>
    Dict(b, 'a')
  File "C:\Users\test.py", line 52, in Dict
    str = str(mar)
TypeError: 'str' object is not callable

아무도 이것이 왜 있는지 압니까?

@ 그렉 Hewgill :

나는 이미 그것을 시도하고 오류가 발생합니다 :

Traceback (most recent call last):
 File "C:\Users\test.py", line 63, in <module>
    Dict(z, 'w')
  File "C:\Users\test.py", line 53, in Dict
   strr = ''.join([ c for c in str if c not in (",", "'", '[', ']', '')])
TypeError: 'type' object is not iterable

같은 오류가있는 또 다른 문제가 발생했습니다.

내가 모델에서 속성을 만들었지 만 바보 같이 그 속성을 괄호로 호출했습니다.

희망이 사람을 돕는다!


그것은 또한 잘못된 방법으로 색인을 생성하려고 할 수 있습니다.

a = 'apple'
a(3) ===> 'str' object is not callable

a[3] = l

내 경우에는 동일한 이름의 메서드와 문자열 속성을 가진 클래스가 있었지만 메서드를 호출하려고했지만 문자열 속성을 가져 오려고했습니다.


방금 내가 겪었던 문제는 실수로 문자열을 호출하는 것입니다.

"Foo" ("Bar" if bar else "Baz")

다음과 같이 문자열을 연결할 수 있습니다.

"Foo" "Bar"

그러나 첫 번째 예제에서 열린 중괄호로 인해 "Foo" 를 호출하려고하고 있다고 생각했습니다.


이게 문제 야:

global str

str = str(mar)

str() 의미하는 바를 재정의하고있다. str 은 문자열 유형의 내장 파이썬 이름이며, 변경하지 않으려 고합니다.

지역 변수에 다른 이름을 사용하고 global 명령문을 제거하십시오.


입력 매개 변수를 확인하고 이름이 지정된 type 이 하나도 없는지 확인하십시오. 그렇다면 충돌이 발생하고이 오류가 발생합니다.


코드에는 없지만 문자열 서식 지정을 시도 할 때 % 문자가 누락 된 경우도 있습니다.

"foo %s bar %s coffee"("blah","asdf")

하지만 다음과 같아야합니다.

"foo %s bar %s coffee"%("blah","asdf")

누락 된 % 는 동일한 TypeError: 'str' object is not callable .


str 변수가 있고 str() 함수를 호출하려고하면이 오류가 발생할 수 있습니다.





python