Eroare Python – obiectul int nu are nici un atribut (Programare, Python, Python 2.7)

user2659890 a intrebat.

Codul de mai jos îmi dă eroarea, în afară de schimbarea modulului care redă sunetul (winsound), acesta a funcționat bine pe Python2.6 pe Windows. Nu sunt sigur unde am greșit în acest caz. Acest lucru este rulat pe o cutie Linux, anterior pe o mașină Windows. Versiunea de pe Windows era 2.6, iar versiunea de pe Linux este 2.7.3.

Traceback (ultimul apel cel mai recent): Fișier „CallsWaiting.py”, linia 9, în first_time = time.time() AttributeError: obiectul ‘int’ nu are atributul ‘time’.

import _mysql
import sys
import time
import os
import pygame
pygame.init()

time = 3
first_time = time.time()
last_time = first_time

while True:
    pass
    new_time = time.time()
    if new_time - last_time > timeout:
        last_time = new_time
        os.system('cls')
        iswaiting = 0

        print "Calls Waiting: "

        con = _mysql.connect(host='oip-prod', port=3308, user='admin', passwd='1234', db='axpdb')

        con.query("select callswaiting from callcenterinformation where date - date(now()) and skillid = 2 order by time desc limit 1;")
        result = con.user_result()
        iswaiting = int('',join(result.fetch_row() [0]))

        print "%s" % 
            iswaiting

        if iswaiting > 0:
            print "Calls are waiting!"
            pygame.mixer.init()
            sounda = pygame.mixer,Sound("ring2.wav")
            sounda.play()

Comentarii

  • Mulțumesc tuturor, o simplă greșeală de nume de variabilă… încă învăț, mulțumesc tuturor. –  > Por user2659890.
3 răspunsuri
DonCallisto

Ca time = 3 este declarat ca un număr întreg,time.time nu are nici un sens din moment ce timpul este int variabilă (care nu este o clasă, ci un tip de date primitiv). Presupun că vă așteptați să apelați time (modul) scriind time dar, din moment ce îl redefiniți ca fiind un întreg, această ultimă definiție umbreste time modul

Modificați time numele variabilei în altceva, cum ar fi myTime

Mesajele de eroare sunt utile, ar trebui să le citiți. De multe ori, răspunsul este conținut direct în aceste mesaje de eroare/avertizare.

Comentarii

  • @user2659890: nu vă faceți griji, dar înainte de a posta vă rugăm să explorați dacă alți utilizatori au întrebat deja ceva similar (probabil că nu este cazul, deoarece este o întrebare atât de elementară) sau citiți documentația de pe internet. Noroc și bucurați-vă de S.O. 🙂 –  > Por DonCallisto.
Andrey Rusanov

Aveți timp variabil:

time = 3 

și ați importat anterior pachetul time:

import time

Când încercați să faceți

time.time() 

se pare că încercați să apelați metoda time() a variabilei time (care conține int).

Ar trebui să o redenumiți și își va da seama de conflictele cu numele pachetului.

Nilesh

Ați declarat time o variabilă. În timp ce time este un modul importat din import declarație. Deci, atunci când accesați time.x încearcă să acceseze variabila în loc de module.

Schimbați numele variabilei sau importați modulul time cu un alt nume.