我已经学习了一段时间的python但是我真的想开始使用oop但是我很难理解它,请你告诉我我班上哪里出错了。
class Savecookies():
driver = webdriver.Firefox()
def __init__(self, site, url):
self.site = site
self.url = url
def twitter(driver, self.site, self.url):
if __name__=='__main__':
cooks = Savecookies('twitter', 'https://twitter.com/')
我的错误:
File "twitter_test2.py", line 26
def twitter(driver, self.site, self.url):
^
SyntaxError: invalid syntax
答案 0 :(得分:6)
def twitter(driver, self.site, self.url):
那是什么?
首先,方法需要一个正文。否则他们是不完整的。最简单的机构就是做pass
(即什么都不做)。但是你可能想在那里添加实际内容。
其次,你的论点毫无意义。方法的第一个参数是self
,然后指定您希望方法接受哪些其他参数。参数名称必须是有效变量,所以你不能在那里有一个点。如果您希望该方法可以访问self.site
和self.url
,您只需执行此操作而无需将其传递给该函数(因为您可以访问self
)。在您的情况下,您已经拥有Savecookies
对象中的网站和网址,因此您可能需要以下内容:
def twitter(self, driver):
# Do something useful here
print(self.site, self.url)
print(driver)
答案 1 :(得分:0)
如果twitter
是实例方法
变化
def twitter(driver, self.site, self.url):
到
def twitter(self):
#now do something with the params
print(self.driver, self.site, self.url)
基本上,让它访问site
url
和__init__
实例属性
并让它访问类
中设置的driver
类属性
可以通过self.
访问这两种类型的属性,无需再次将其作为参数传递。