本章,继续对CSDN技能树的一些例子进行了改进说明和实践。希望能帮助在技能树游泳的哥们。
更改说明原来的例子,写的注解太少了,没用的基本概念解释太多,花了时间看的,反而困惑了。再加上调用了choice这个随机取值函数,搞的结果更加玄乎,这个是一个培训的文案例子,建议修正。
1创建类# -*- coding: UTF-8 -*-
from random import choice
class Divergence:
def __init__(self,name='robot'):
self.name = name
pass
def getChoice(self,name=None):
if name is not None:
self.name = name
self.__lists = ['剪刀','石头','布']
result = choice(self.__lists)
print('类名叫',self.name,':随机选择了>',result)
上述代码,创建了一个Divergence的类,
其中,
def init(self,name=‘robot’):
self.name = name
pass
定义了一个类的初始化,这里除了,self参数外,还定义了,name的参数,同时他的默认初始值为‘robot’。
def getChoice(self,name=None):
if name is not None:
self.name = name
self.__lists = [‘剪刀’,‘石头’,‘布’]
result = choice(self.__lists)
print(‘类名叫’,self.name,‘:随机选择了>’,result)
定义了一个类的方法,该方法从内部的列表里面,随机取一个值输出,也就是实现了猜拳的功能。
1.1 Python 有初始化参数的创建类上述例子,我们手动添加了类的初始化构造方法,init.
而且,在init除了,self参数外,还有其他参数name,此为有初始化的创建。
如果,根本不给init类的构造方法,或者,给出了构造方法,但是,输入的初始化参数只有self,这个就是无初始化参数的创建类了。
如果不给出类的构造方法,Python会自己给出默认的构造方法,这个在之前的讨论中已经提到了。
#实例化对象的时候传递name参数
d = Divergence('A')
d.getChoice()
【本例实例化的时候,输入了参数’A’,初始化的时候就把类的名称改成A了,】
类名叫 A :随机选择了> 布
【更改输入参数】
#实例化对象的时候传递name参数
d = Divergence('我是谁')
d.getChoice()
类名叫 我是谁 :随机选择了> 剪刀
【案,完全不要管“随机选择了>”的结果,只要有输出就对了,因为设计就是一个随机数】
【现在,我们不给他输入参数】
#实例化对象的时候传递name参数 d = Divergence() d.getChoice()
类名叫 robot :随机选择了> 剪刀
这时候,类名就变成了我们一开始设定的默认名字:robot
2.2 不带参数初始化类现在我们在重新写一下类的初始化定义,这一次,我们给了类的初始化定义,但是,我们pass了,里面没有具体东西,我们看看结果:
# -*- coding: UTF-8 -*-
from random import choice
class Divergence:
def __init__(self):
pass
def getChoice(self,name=None):
self.__lists = ['剪刀','石头','布']
result = choice(self.__lists)
print('类名叫',self,':随机选择了>',result)
#实例化对象的时候传递name参数
d = Divergence()
d.getChoice()
类名叫
:随机选择了> 布
OK,我们看的现在编译器给了他一个好名字:
main.Divergence object at 0x000002087EED2BC8>
再暴力一点,这次完全不写初始化的了,完全不写
# -*- coding: UTF-8 -*-
from random import choice
class Divergence:
def getChoice(self,name=None):
self.__lists = ['剪刀','石头','布']
result = choice(self.__lists)
print('类名叫',self,':随机选择了>',result)
#实例化对象的时候传递name参数
d = Divergence()
d.getChoice()
输出:
类名叫
:随机选择了> 剪刀
好像代码指针变了一下。
小结:相信写到这里,有关类的初始化参数的讨论就比较清楚了。
参考 choice() 函数从给出的列表,元组或字符串的随机项中,随机返回一个项目:
#!/usr/bin/python
import random
print "choice([1, 2, 3, 5, 9]) : ", random.choice([1, 2, 3, 5, 9])
print "choice('A String') : ", random.choice('A String')
choice([1, 2, 3, 5, 9]) : 5
choice(‘A String’) : S
【
案,这里,choice函数从[1, 2, 3, 5, 9]列表中,随机取到了一个数5,
从字符串,‘A String’,中随机取到了一个字符S
】



