程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python】【技能樹評測】技巧實例-說明改進和實踐【02】 - 類的初始化和初始化參數

編輯:Python

前言:

本章,繼續對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()

類名叫 <main.Divergence object at 0x000002087EED2BC8> :隨機選擇了> 布

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()

輸出:

類名叫 <main.Divergence object at 0x000002087EEDA548> :隨機選擇了> 剪刀

好像代碼指針變了一下。

小結:

相信寫到這裡,有關類的初始化參數的討論就比較清楚了。

參考

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


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved