Wywołanie zmiennej wewnątrz funkcji klasy

0

Witam.

Mam taki kod:


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?

1

To jest bez sensu:

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.

0

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.

0

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

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)


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)

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

    def open_site(self):
        # ...
        pass


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


0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1