本文目錄一覽:
python創建類的方法實例
創建一個學生類:
數據:(姓名,姓別,年齡 ,分數)
形為:打印信息
”’
class Studons:
def __init__(self,name,xibie,nianling,fenshu):
self.name=name
self.xibie=xibie
self.nianling=nianling
self.fenshu=fenshu
def dayin(self):
print(“姓名:%s,性別:%s,年齡:%d,分數:%d”%(self.name,self.xibie,self.nianling,self.fenshu))
list_stud_xi=[]
while True:
qr=input(“y繼續,n退出”)
if qr==”y”:
name=input(“請輸入學生姓名:”)
xingbie = input(“請輸入學生性別:”)
nianli=int(input(“請輸入學生年齡:”))
fenshu=int(input(“請輸入學生分數:”))
stu = Studons(name, xingbie, nianli, fenshu)#stu儲存的是類變量數據。
list_stud_xi.append(stu)#列表元素是類變量數據。
else:
break
for str in list_stud_xi:
str.dayin()
one=list_stud_xi[0]
one.dayin()
one.name=”李剛”
one.fenshu=78
print(one.name,one.fenshu)
Python類的用法實例淺析
Python類的用法實例淺析
這篇文章主要介紹了Python類的用法,以實例形式簡單分析了Python中類的定義、構造函數及使用技巧,需要的朋友可以參考下
本文實例講述了Python類的用法。分享給大家供大家參考。具體如下:
先看一段代碼:
#!/usr/bin/env python
class Test:
def __init__(self,msg=”hello”):
self.wel=msg
print “init”
def go(self,name,do):
print self.wel+”go! “+name+” “+do
d=Test(“hi,”)
d.go(“naughty”,”fight”)
上面的代碼演示了:
1、構造函數以及帶參數(參數有默認值)構造函數
2、構造類實例
3、使用類實例調用類方法
希望本文所述對大家的Python程序設計有所幫助。
Python中類與實例的其他說明解釋?
9.4. 一些說明
數據屬性會覆蓋同名的方法屬性。為了避免意外的名稱衝突,這在大型程序中是極難發現的 Bug,使用一些約定來減少衝突的機會是明智的。可能的約定包括:大寫方法名稱的首字母,使用一個唯一的小字符串(也許只是一個下劃線)作為數據屬性名稱的前綴,或者方法使用動詞而數據屬性使用名詞。
數據屬性可以被方法引用,也可以由一個對象的普通用戶(客戶)使用。換句話說,類不能用來實現純凈的數據類型。事實上,Python 中不可能強制隱藏數據——一切基於約定(如果需要,使用 C 編寫的 Python 實現可以完全隱藏實現細節並控制對象的訪問。這可以用來通過 C 語言擴展 Python)。
客戶應該謹慎的使用數據屬性——客戶可能通過踐踏他們的數據屬性而使那些由方法維護的常量變得混亂。注意:只要能避免衝突,客戶可以向一個實例對象添加他們自己的數據屬性,而不會影響方法的正確性——再次強調,命名約定可以避免很多麻煩。
從方法內部引用數據屬性(或其他方法)並沒有快捷方式。我覺得這實際上增加了方法的可讀性:當瀏覽一個方法時,在局部變量和實例變量之間不會出現令人費解的情況。
一般,方法的第一個參數被命名為 self。這僅僅是一個約定:對 Python 而言,名稱 self 絕對沒有任何特殊含義。(但是請注意:如果不遵循這個約定,對其他的 Python 程序員而言你的代碼可讀性就會變差,而且有些 類查看器 程序也可能是遵循此約定編寫的。)
類屬性的任何函數對象都為那個類的實例定義了一個方法。函數定義代碼不一定非得定義在類中:也可以將一個函數對象賦值給類中的一個局部變量。例如:
# Function defined outside the class
def f1(self, x, y):
return min(x, x+y)
class C:
f = f1
def g(self):
return ‘hello world’
h = g
現在 f, g 和 h 都是類 C 的屬性,引用的都是函數對象,因此它們都是 C 實例的方法-- h 嚴格等於 g 。要注意的是這種習慣通常只會迷惑程序的讀者。
Python類和實例變量的理解與運用?
9.3.5. 類和實例變量
一般來說,實例變量用於對每一個實例都是唯一的數據,類變量用於類的所有實例共享的屬性和方法:
class Dog:
kind = ‘canine’ # class variable shared by all instances
def __init__(self, name):
self.name = name # instance variable unique to each instance
d = Dog(‘Fido’)
e = Dog(‘Buddy’)
d.kind # shared by all dogs
‘canine’
e.kind # shared by all dogs
‘canine’
d.name # unique to d
‘Fido’
e.name # unique to e
‘Buddy’
正如在 術語相關 討論的, 可變 對象,例如列表和字典,的共享數據可能帶來意外的效果。例如,下面代碼中的 tricks 列表不應該用作類變量,因為所有的 Dog 實例將共享同一個列表:
class Dog:
tricks = [] # mistaken use of a class variable
def __init__(self, name):
self.name = name
def add_trick(self, trick):
self.tricks.append(trick)
d = Dog(‘Fido’)
e = Dog(‘Buddy’)
d.add_trick(‘roll over’)
e.add_trick(‘play dead’)
d.tricks # unexpectedly shared by all dogs
[‘roll over’, ‘play dead’]
這個類的正確設計應該使用一個實例變量:
class Dog:
def __init__(self, name):
self.name = name
self.tricks = [] # creates a new empty list for each dog
def add_trick(self, trick):
self.tricks.append(trick)
d = Dog(‘Fido’)
e = Dog(‘Buddy’)
d.add_trick(‘roll over’)
e.add_trick(‘play dead’)
d.tricks
[‘roll over’]
e.tricks
[‘play dead’]
總結後的知識點希望能幫到你
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/253955.html