1. python 類實例化
1、python的類中,以__(兩個下劃線)開頭但不以__結束的就是私有的變數或者函數,私有函數和變數不能在class外調用到。
class test:
def __init__(self, num):
self.__num = num
privateTest = test(100)
privateTest.__num#會報錯
當然也有辦法調到,只是不建議那樣做。
2、第一個class se()中的 變數s,是一個類變數,是class se的變數,類變數可以被類本身訪問,如se.s,也可以被各個對象訪問,而且由於是存在class里的所以值唯一,有點像C++里的static。
但是如果有某一個對象也創建了一個叫s的變數 覆蓋了類變數,那麼那個self.s就是對象的屬性,而不會調到類變數。
你可以運行試試
# -*- coding: cp936 -*-
class A:
name = []
def __init__(self, name):
self.name.append(name)
def nameMyself(self, name):
self.name = [name]
print 'my name is',self.name, 'and class A1name is :', A.name
def test(self):
print "my name is", self.name
obj = A("num0")
obj1 = A("num1")
print "obj1`name", obj1.name#對象訪問類變數name
print "class A`name", A.name#class自己訪問類變數name
obj1.test()#此時還是訪問的類變數name
obj1.nameMyself('aid')#給自己起個名覆蓋類變數的name
obj1.test()#對於obj1來說只能訪問自己的name了
print "class A`name", A.name#類變數依然存在
2. python怎麼創建類的對象
定義的類只有進行實例化,也就是使用該類創建對象之後,才能得到利用。總的來說,實例化後的類對象可以執行以下操作:
訪問或修改類對象具有的實例變數,甚至可以添加新的實例變數或者刪除已有的實例變數;
調用類對象的方法,包括調用現有的方法,以及給類對象動態添加方法。
3. python中怎麼創建浮點型變數
創建 float 值有兩種方式:
1、直接賦予變數浮點值
2、使用構造器float()創建float類型實例
使用第一種方式,如果該數值沒有小數,需要添加後綴.0,否則,解釋器會認為這是int類型數值,示例如下:
使用第二種方式,如果沒有任何輸入參數,那麼創建float實例值為 0.0
也可以輸入單個參數,一個數值或者一個數字字元串,示例如下:
Note:使用float()構造器還可以定義無窮大(Infinity或者inf)和無窮小
4. 如何用Python創建生成xml文檔文件的方法
1、內存數據產生
2、產生xml內存對象(也就是DOM樹)
3、產生根對象
4、往根對象里加數據
5、把xml內存對象寫到文件
下面是一個創建xml文檔的簡單實例:
importxml.dom.minidom#在內存中創建一個空的文檔doc=xml.dom.minidom.Document()
#創建一個根節點Managers對象root=doc.createElement('Managers')
#設置根節點的屬性root.setAttribute('company','xx科技')
root.setAttribute('address','科技軟體園')
#將根節點添加到文檔對象中doc.appendChild(root)
managerList=[{'name':'joy','age':27,'sex':'女'},
{'name':'tom','age':30,'sex':'男'},
{'name':'ruby','age':29,'sex':'女'}
]foriinmanagerList:
nodeManager=doc.createElement('Manager')
nodeName=doc.createElement('name')
#給葉子節點name設置一個文本節點,用於顯示文本內容
nodeName.appendChild(doc.createTextNode(str(i['name'])))
nodeAge=doc.createElement("age")
nodeAge.appendChild(doc.createTextNode(str(i["age"])))
nodeSex=doc.createElement("sex")
nodeSex.appendChild(doc.createTextNode(str(i["sex"])))
#將各葉子節點添加到父節點Manager中,
#最後將Manager添加到根節點Managers中
nodeManager.appendChild(nodeName)
nodeManager.appendChild(nodeAge)
nodeManager.appendChild(nodeSex)
root.appendChild(nodeManager)#開始寫xml文檔fp=open('c:\wcx\Manager.xml','w')
doc.writexml(fp,indent=' ',addindent=' ',newl=' ',encoding="utf-8")
執行結果:
<?xmlversion="1.0"encoding="utf-8"?>
<Managersaddress="科技軟體園"company="xx科技">
<Manager>
<name>joy</name>
<age>27</age>
<sex>女</sex>
</Manager>
<Manager>
<name>tom</name>
<age>30</age>
<sex>男</sex>
</Manager>
<Manager>
<name>ruby</name>
<age>29</age>
<sex>女</sex>
</Manager>
</Managers>
6.用Python自帶的寫xml文檔的API去寫,比較方便,後期容易維護。如果直接用打開文件的方式,一行一行的去寫,比較費時,也難以維護。
5. Python中編寫一個類,包含一個變數,一個方法;再編寫一個子類,繼承前一個類
摘要 使用 class 語句來創建一個新類,class 之後為類的名稱並以冒號結尾:class ClassName:
6. 關於python的實例方法問題
題主你好,
python中創建新實例的時候, 如果相應的類中定義了__init__()方法的話, 會自動調用這個方法. 你可能認為名稱"init"和"__init__"差不多, 但計算機其實是個很笨的東西, 它會完全按照設計去執行. 也就是說,在設計的時候就已經定死了, 默認情況下, 創建新實例的時候, 會自動調用類中定義的__init__()方法, 只要你的方法名和__init__有一點不一樣也不行.
下圖是我在官網上找的關於__init__()調用的簡單說明:
高亮部分說的大概意思就是上面講的,如果相應類中定義了__init__()方法,則在創建該類實例的時候會自動調用裡面定義的__init__()方法.
-----
希望可以幫到題主, 歡迎追問.
7. python定義一個矩形類並生成類實例對象:屬性:長、寬 方法:輸入長、寬; 輸出長和寬;獲得面積
classRetangle:
width=0
height=0
def__init__(self,width=0,height=0):
self.width=width
self.height=height
definput(self):
self.width=input('width:')
self.height=input('height:')
defarea(self):
returnself.width*self.height
rc=Retangle()
rc.input()
print('width=',rc.width)
print('height=',rc.height)
print('area=',rc.area())
8. Python如果一個父類已經實例化了,現在想新建一個子類,給父類的這一個實例添加兩個屬性,如何實現
class People(object):
def __init__(self, name, age):
self.name = name
self.age = age
class worker(People):
def __init__(self,name,age,salary):
super(worker,self).__init__(name,age)
self.salary = salary
tom = People("Tom", 22)
print type(tom).__name__
#not a safe way, but no new object
tom.__class__=worker
print type(tom).__name__
tom.salary = 250
print tom.salary
#safe way, but create a new object
workerTom = worker("Tom", 22, 200)
tom.__dict__ = workerTom.__dict__
print type(tom).__name__
print tom.salary