[#] Programowanie w Python - przykłady

( Ostatnio zmieniony śr., 18/06/2008 - 00:29 )
 

Obiekt oraz zakres zmiennych i metod

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import sys

class NazwaKlasy (object):

  publiczna_zmienna = 'Jestem publiczna_zmienna!'
  __prywatna_zmienna = 'Jestem prywatna_zmienna!'

  def __init__(self,):
    print 'Inicjalizuje obiekt'

  def zwykla_metoda(self,):
    print 'Jestem zwykla_metoda!'

    print 'Wywoluje zmienne: publiczna_zmienna oraz prywatna_zmienna'
    print self.publiczna_zmienna
    print self.__prywatna_zmienna
    print 'Wywoluje metode: tajna_metoda'
    self.__tajna_metoda()

  def __tajna_metoda(self,):
    print 'Jestem tajna_metoda!'


# main
if __name__ == '__main__':
  obiekt = NazwaKlasy()

  print 'Wywoluje metode: zwykla_metoda'
  obiekt.zwykla_metoda()

  print 'Wywoluje zmienna: publiczna_zmienna'
  print obiekt.publiczna_zmienna

  try:
    print 'Wywoluje zmienna: prywatna_zmienna'
    print obiekt.__prywatna_zmienna
  except:
    print 'main nie moze uzyskac dostepu do zmiennej prywatnej'

  try:
    print 'wywoluje metode tajna_metoda'
    obiekt.__tajna_metoda()
  except:
    print 'main nie moze uzyskac dostepu do tajnej metody'

  sys.exit()

w wyniku powinniśmy otrzymać:

Inicjalizuje obiekt
Wywoluje metode: zwykla_metoda
Jestem zwykla_metoda!
Wywoluje zmienne: publiczna_zmienna oraz prywatna_zmienna
Jestem publiczna_zmienna!
Jestem prywatna_zmienna!
Wywoluje metode: tajna_metoda
Jestem tajna_metoda!
Wywoluje zmienna: publiczna_zmienna
Jestem publiczna_zmienna!
Wywoluje zmienna: prywatna_zmienna
main nie moze uzyskac dostepu do zmiennej prywatnej
wywoluje metode tajna_metoda
main nie moze uzyskac dostepu do tajnej metody

POPUP – w sprawdzeniu is_root

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import gtk
import os.path
import sys

# okienko z wiadomoscia
def popup(p_msg):
  #dialog = gtk.MessageDialog(None, buttons=gtk.BUTTONS_CLOSE, message_format=p_msg)
  dialog = gtk.MessageDialog(
     parent         = None,
     flags          = gtk.DIALOG_DESTROY_WITH_PARENT,
     type           = gtk.MESSAGE_INFO,
     buttons        = gtk.BUTTONS_OK,
     message_format = p_msg
  )
  dialog.set_title('Informacja!')
  dialog.run()
  dialog.destroy()


# uruchomiony jako root?
def is_root():
  if os.geteuid() != 0:
    popup("Musisz uruchomic ten program jako root => gksudo /path/script.py")
    return False
  else:
    return True

# main
if __name__ == '__main__':
  is_root()
  sys.exit()

TRAY + POPUP

#!/usr/bin/env python

import gtk

class StatusIcc:

  # activate callback
  def activate( self, widget, data=None):
    dialog = gtk.MessageDialog(
    parent         = None,
    flags          = gtk.DIALOG_DESTROY_WITH_PARENT,
    type           = gtk.MESSAGE_INFO,
    buttons        = gtk.BUTTONS_YES_NO,
    message_format = "Did you like this Activation example \n by Maxin B. John <maxinbj...@gmail.com>?")
    dialog.set_title('Popup example')
    dialog.connect('response', self.show_hide)
    dialog.show()

 # Show_Hide callback
  def  show_hide(self, widget,response_id, data= None):
    if response_id == gtk.RESPONSE_YES:
      widget.hide()
    else:
      widget.hide()

  # destroyer callback
  def  destroyer(self, widget,response_id, data= None):
    if response_id == gtk.RESPONSE_OK:
      gtk.main_quit()
    else:
      widget.hide()

  # popup callback
  def popup(self, button, widget, data=None):
    dialog = gtk.MessageDialog(
    parent         = None,
    flags          = gtk.DIALOG_DESTROY_WITH_PARENT,
    type           = gtk.MESSAGE_INFO,
    buttons        = gtk.BUTTONS_OK_CANCEL,
    message_format = "Do you want to close this Status Icon program?")
    dialog.set_title('Popup Window')
    dialog.connect('response', self.destroyer)
    dialog.show()

  def __init__(self):
    # create a new Status Icon
    self.staticon = gtk.StatusIcon()
    self.staticon.set_from_stock(gtk.STOCK_ABOUT)
    self.staticon.set_blinking(True)
    self.staticon.connect("activate", self.activate)
    self.staticon.connect("popup_menu", self.popup)
    self.staticon.set_visible(True)

    # invoking the main()
    gtk.main()

if __name__ == "__main__":
    statusicon = StatusIcc()

źródło: groups.google.com

Przydatne linki

Python tutorial

5
Twoja ocena: Brak Średnio: 5 (2 głosy)