Wywołanie zmiennej wewnątrz funkcji klasy

Wywołanie zmiennej wewnątrz funkcji klasy
R6
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 5 lat
  • Postów:14
0

Witam.

Mam taki kod:

Kopiuj

class InputProc:

        driver = webdriver.Firefox()

        def open_site(self):

            url = 'https://facebook.pl/'
            self.driver.get(url)
            #self.driver.maximize_window()
            siteTitle = self.driver.title
            assert 'Facebook' in siteTitle

"""coś dalej"""

InPr = InputProc()

print('Uruchamiam program...')

InPr.open_site()

print('Otwieram wybraną stronę %s' %InPr.url)

I tutaj pojawia się problem: jak wywołać zmienną url?

DB
  • Rejestracja:ponad 9 lat
  • Ostatnio:5 miesięcy
  • Postów:227
1

To jest bez sensu:

Kopiuj
InPr.url 

obiekt InPr ktory jest instancja klasy InputProc() nie posiada atrybutu url.

Albo:
zrob to tak aby url byl atrybutem instancji klasy lub zmienna klasowa.
albo:
w metodzie open_site zwroc url zeby miec do niego dostep spoza klasy.

A najlepiej to poczytaj o podstawach OOP.

edytowany 2x, ostatnio: DolBo
R6
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 5 lat
  • Postów:14
0
Kopiuj

class InputProc:

        driver = webdriver.Firefox()
        url = 'https://facebook.pl/'

        def open_site(self):

            InputProc.driver.get(InputProc.url)

"""coś dalej"""

InPr = InputProc()

print('Uruchamiam program...')

InPr.open_site()

print('Otwieram wybraną stronę %s' %InPr.url)

Działa, ale chciałbym abyś pokazał mi alternatywne rozwiązania, na tym konkretnym przykładzie. Będę wdzięczny.

DB
  • Rejestracja:ponad 9 lat
  • Ostatnio:5 miesięcy
  • Postów:227
0

Można zrobić to na wiele sposób tylko jaki jest problem i co chcesz osiągnąć ?
Jaki jest kontekts ?

Kopiuj
class InputProc(object):

    def __init__(self, url):
        self.url = url

    def open_site(self):
        # ...
        pass


InPr = InputProc(url='https://facebook.pl/')
InPr.open_site()

print 'Otwieram wybrana strone {}'.format(InPr.url)

Kopiuj

class InputProc(object):

    def open_site(self, url):
        # ...
        pass


url = 'https://facebook.pl/'
InPr = InputProc()
InPr.open_site(url=url)
print 'Otwieram wybrana strone {}'.format(url)

Kopiuj
class InputProc(object):
    url = 'https://facebook.pl/'

    def open_site(self):
        # ...
        pass


InPr = InputProc()
InPr.open_site()
print 'Otwieram wybrana strone {}'.format(InPr.url)


R6
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 5 lat
  • Postów:14
0

Chodziło mi tylko o przedstawienie rozwiązań na schemacie, bo coś nie bardzo rozumiałem tematykę klas. Dzięki wielkie!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.