栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python】【技能树评测】技巧实例-说明改进和实践【02】 - 类的初始化和初始化参数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python】【技能树评测】技巧实例-说明改进和实践【02】 - 类的初始化和初始化参数

前言:

本章,继续对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,此为有初始化的创建。

1.2 Python 无初始化参数的创建类

如果,根本不给init类的构造方法,或者,给出了构造方法,但是,输入的初始化参数只有self,这个就是无初始化参数的创建类了。
如果不给出类的构造方法,Python会自己给出默认的构造方法,这个在之前的讨论中已经提到了。

2 类的使用 2.1 带参数初始化类
#实例化对象的时候传递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
】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/979747.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号