新浪博客

python中的“类”(四)

2023-06-26 12:26阅读:
打印完成后,我们做两件事情:
1.fn=[]ln1=[]ln2=[]修改改成元组,元组比列表要更省内存
2.将打印出来的结果复制粘贴到元组中,显然在制作完成后我们不能每做一次就重新读一遍,要把这些变成常量
完成后看起来应该像这样(当然比这个要长很多很多):
fn = ('', '', '', '')
ln1 = ('', '', '', '')
ln2 = ('治月', '正页', '书锋')

现在开始我们可以来定义父类FakeUser:
import random
class FakeUser:
def fake_name(self,one_word=False,two_words=False):
if one_word:
full_name = random.choice(fn) + random.choice(ln1)
elif two_words:
full_name = random.choice(fn) + random.choice(ln2)
else:
full_name = random.choice(fn) + random.choice(ln1+ ln2)
print(full_name)

def fake_gender(self):
gender = random.choice(['','','未知'])
print(gender)

接下来是定义子类:
class SnsUser(FakeUser):
def get_followers(self,few=True,a_lot=False):
if few:
followers = random.randrange(1,50)
elif a_lot:
followers = random.randrange(200,10000)
print(followers)
user_a = FakeUser()
user_b = SnsUser()
user_a.fake_name()
user_b.get_followers(few=True)

似乎这并没有解决什么问题?
到了这里,我们创建的类已经可以正常使用了我们的目的是批量制造假的填充数据,但是这样使用比起手工添加,效果并好不到哪去,因此在原有的代码上,我们要做一些小的调整,把所有的print替换成yield并在其上方加上一层循环,然后神奇的事情就这样发生了,我们就可以像range函数一样使用方法了:
class FakeUser():
def fake_name(self,amount=1,one_word=False,two_words=False):
n = 0
while n <= amount:
if one_word:
full_name = random.choice(fn) + random.choice(ln1)
elif two_words:
full_name = random.choice(fn) + random.choice(ln2)
else:
full_name = random.choice(fn) + random.choice(ln1 + ln2)
yield full_name
n+=1
def fake_gender(self,amount=1):
n = 0
while n <= amount:
gender = random.choice(['','','未知'])
yield gender
n +=1
class SnsUser(FakeUser):
def get_followers(self,amount=1,few=True,a_lot=False):
n = 0
while n <= amount :
if few:
followers = random.randrange(1,50)
elif a_lot:
followers = random.randrange(200,10000)
yield followers
n+=1
user_a = FakeUser()
user_b = SnsUser()
for name in user_a.fake_names(30):
print(name)
for gender in user_a.fake_gender(30):
print(gender)

这其实用到了一个新的概念,叫做生成器(generator)简单的来说,在函数中我们只要在任意一种循环(loop)中使用yield返回结果,就可以得到类似于range函数的效果
(十二)安装自己的库
我们一般使用pip来进行第三方库的安装,那么自己的库要怎么安装呢?当然可以把自己的库提交到pip,但是还要添加一定量的代码和必要文件才行在这里我们使用一个更简单的万法:
1.找到你的Python安装目录,找到下面的site-packages文件夹;
2.记住你的文件名,因为它将作为引用时的名称,然后将你写的py文件放进去
这个文件夹应该有你所装的所有第三方库
如果你并不清楚你的安装路径,你可以尝试使用如下万式搞清楚它究竟在哪里:
import sys
print(sys.path)

打印出来的会是一个列表,列表中的第四个将是你的库安装路径所在,因此你也可以直接这么做:
import sys
print(sys.path[3])

现在就来试试使用自己写的库吧!

我的更多文章

下载客户端阅读体验更佳

APP专享