我剛剛掌握了python,並且正在嘗試使用子類方法更改Parent類變量的值。我的代碼的基本示例如下。更改子類中的父變量,然後在父類中使用新值?
from bs4 import BeautifulSoup
import requests
import urllib.request as req
class Parent(object):
url = "http://www.google.com"
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
print(url)
def random_method(self):
print(Parent.soup.find_all())
class Child(Parent):
def set_url(self):
new_url = input("Please enter a URL: ")
request = req.Request(new_url)
response = req.urlopen(request)
Parent.url = new_url
def print_url(self):
print(Parent.url)
如果我運行的方法,輸出如下。
run = Child()
run.Parent()
>>> www.google.com
run.set_url()
>>> Please enter a url: www.thisismynewurl.com
run.print_url()
>>> www.thisismynewurl.com
run.random_method()
>>> #Prints output for www.google.com
任何人都可以解釋爲什麼當我運行print_url我可以得到新的URL印刷,但如果我嘗試和另一種方法使用它,它恢復到原來的值?
我肯定會看看python上的Classes文檔。我想你可能會遺漏一些關於無關性,方法和屬性的關鍵點。 https://docs.python.org/2/tutorial/classes.html – Adam