我想编写func并将其添加到类中。 我用Python:写入类错误
import pandas as pd
import tldextract
domain = []
df = pd.DataFrame()
df['urls'] = ['ru.vk.com', 'eng.facebook.com', 'ru.ya.ru']
urls = df.urls.values.tolist()
class csv:
def get_domain(self, list_url, list, df):
self.list_url = list_url
self.list = list
self.df = df
for i, url in enumerate(list_url):
get_domain = tldextract.extract(url)
subdomain = get_domain[0] + '.' + get_domain[1] + '.' + get_domain[2]
if subdomain.startswith('.'):
subdomain = subdomain[1:]
elif subdomain.endswith('.'):
subdomain = subdomain[:-1]
elif subdomain.startswith('www.'):
subdomain = subdomain[4:]
list.append(subdomain)
df['subdomain'] = list
df = csv()
df.get_domain(urls, domain, df)
我尝试从网址获得域名,但我得到的错误
AttributeError: csv instance has no attribute '__setitem__'
我应该怎么改?
你为什么要在这里上课?它只有一个方法,三个属性可以很容易成为局部变量。 –
嘿,停止使用保留名称作为参数名称。 'list'是python中的内置函数。 – JClarke
是否故意'self.list_url = list_url'和'self.list = list'只复制对原始列表的引用,这些赋值不会创建列表的副本。为此,你需要'copy.deepcopy'(或者一个切片)。 – cdarke