Ⅰ python中編寫一個類,包含一個變數,一個方法;再編寫一個子類,繼承前一個類
摘要 使用 class 語句來創建一個新類,class 之後為類的名稱並以冒號結尾:class ClassName:
Ⅱ python中關於類的問題求解
作業要自己做才能提高水平,只說原理,這個問題,定義長寬高,和計算體積,都不是難點,主要是如何知道實例化數量。
Python的特性是,類的變數,如果是在類裡面直接申明,那麼就是靜態變數,這個類的所有對象都共享共一個變數,用類名來訪問。在這個問題中可以用來計數,例如:
classBox:
count=0
def__init__(self,l,w,h):
Box.count+=1
count變數用來統計對象個數,在類的初始化函數__init__中加1,每初始化一個對象就能使統計值加1了。
而在類的函數中申明的self的變數,就是類的成員變數,每個實例化的對象都有一份自己的拷貝,例如
classBox:
count=0
def__init__(self,l,w,h):
Box.count+=1
self.length=l
self.width=w
self.height=h
self.volumn=l*w*h
self.length就是長度,其他的類推,比如要測試並列印出屬性
b1=Box()
b1.length
b1.width
b1.height
b1.volumn
我發覺我基本都把這題做完了。。。。
Ⅲ Python的成員函數問題
join() 是str類中的一個成員函數,它是類成員。
2. python中視一切為對象,所以a其實是一個字元串對象,具有成員函數join,可以用dir(a)查看。
3. a.join() 就是字元對象a調用其成員函數 join()
Ⅳ python如何列出類的成員方法,例如下面代碼,如何列出m1,m2
import c1
print(dir(c1))#顯示c1所有成員和方法
print(dir(c1.m1))#顯示m1的方法
print(dir(c1.m2))#顯示m2的方法
Ⅳ python數據類型(集合)
1.集合(set)是一個無序不重復元素的序列(意思是有重復的會自動刪除,每次列印元素的位置不一定)
2.基本功能是進行成員關系測試和刪除重復元素
3.可以使用大括弧 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典
4.因為set存儲的是無序集合,所以我們沒法通過索引來訪問。訪問 set中的某個元素實際上就是判斷一個元素是否在set中。
1.創建集合
s=set()#創建一個空集合
s1={1,2,3,'a','python'}
2.刪除重復的元素
集合是一個無序不重復元素的序列(意思是有重復的會自動刪除,每次列印元素的位置不一定)
3.成員關系測試(檢測某個成員是否在集合中)
案例:從終端輸入5位數,以空格隔開,把這5位數存入列表中,剔除重復的數據,列印出來
#提示,列表轉集合,集合轉列表
a=input("請輸入5位數字:")
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.刪除元素
3.刪除整個集合
4.獲取集合的長度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
區別:
add不能添加列表,update可以
update是將字元串中的拆分成字元進行追加
add,是當做整體追加在集合中
#案例:從終端輸入一個數字就加入集合中,然後列印,又輸入一個數字,然後列印,直到輸入-1,退出輸入
#然後列印最終的集合
ms=set()
while 1:
a=int(input("請輸入一個數字:"))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:從終端輸入一個字元串就加入集合中,然後列印,又輸入一個字元串,然後列印,直到輸入q,退出輸入
#然後列印最終的集合,字元串要分開存儲,如輸入hello,存儲的列表是{'h','e','l','0'}
ms=set()
while 1:
a=input("請輸入一個字元串:")
if a=='q':
break
ms.update(a)
print(ms)
print(ms)
集合操作-刪除元素及刪除整個集合
格式:
集合.remove(元素) # 元素如果不存在會引發KeyError
集合.discard(元素) # 元素如果不存在不發生任何事
集合.pop() # 集合元素是字元串類型時刪除隨機元素。 集合元素是其他數據類型時,刪除左邊第一個元素
del 集合名 #刪除整個集合
#案例:有集合{1,2,3,'hello','world'},刪除全部字元串,然後最左邊第一個元素
a={1,2,3,'hello','world'}
a.discard("hello")
a.discard("world")
a.pop()
print(a)
集合操作-獲取集合的長度
格式:
len(集合名)
#案例:有集合{1,2,3,4,'hello','a'},保留1個元素,其他的刪除,假如元素個數不確定
s={1,2,3,4,'hello','a'}
for i in range(len(s)-1):
s.pop()
print(s)
集合的集運算
集合的交集,並集,差集,對稱差集的運算
{1,2,3,4}交集{4,5,6,7} -->4 交集(&)
{1,2,3,4}並集{4,5,6,7} ->1,2,3,4,5,6,7 並集(|)
{1,2,3,4}差集{4,5,6,7} ->1,2,3 差集(-)
{1,2,3,4}對稱差集{4,5,6,7}->1,2,3,5,6,7 4同時出現在兩個集合中,不選它 對稱差集(^)
#案例:使用花括弧和set創建各一個集合,然後對集合進行交、並、差、對稱差運算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(s&s1)
print(s|s1)
print(s-s1)
print(s^s1)
Ⅵ python的類成員怎麼變成實例成員
實例可以直接使用類的成員變數。但是有點要注意的,就是關於類變數和實例變數之間的關系,和可變參數、不可變參數差不多的原理。可以參照下面的例子(python版本2.7),希望可以幫到你:
#encoding:UTF-8
classA(object):
x=100
y=[1,2,3,4]
def__init__(self):
pass
if__name__=="__main__":
a=A()
A.x="test"
printA.x
printa.x
a.x='xyz'
A.x="hello"
printa.x
printA.x
printA.y
printa.y
a.y.append("x")
printa.y
printA.y
輸出結果:
Ⅶ 編寫Python程序,用於顯示人的姓名和年齡
按照題目要求編寫的Python程序如下
class Person:
def __init__(self,name,age):
self.__name=name
self.__age=age
def display(self):
print("姓名:{},年齡{}".format(self.__name,self.__age))
if __name__ == '__main__':
p=Person("張三",18)
p.display()
源代碼(注意源代碼的縮進)
Ⅷ 定義一個學生類,包含學號、姓名、平時成績和考核成績四個數據成員和以下成員方法(用Python語言):
花了不少時間寫的,挺詳細的,希望採納。
#引入operator模塊,用於給集合排序
importoperator
#單行注釋用"#",多行注釋用'''注釋內容'''
#定義一個學生類,類名用駝峰命名法
classStudent:
#構造方法,可用來創建對象格式def__init__(self,參數)參數個數自已定義,類型系統自動識別
def__init__(self,stu_no,name,base_score,exam_score):
self.stu_no=stu_no#對象屬性賦值
self.name=name
self.base_score=base_score
self.exam_score=exam_score
#定義計算總評函數定義函數格式def函數名(self,參數),self代表本對象
defget_last_score(self):
#return指定返回值,無return表示此函數無返回值
returnself.base_score*0.3+self.exam_score*0.7
#類似toString方法,列印對象時,調用對象的該方法
def__str__(self):
return'學號:'+self.stu_no+'姓名:'+self.name+",平時成績:"+str(self.base_score)+",考核成績:"+str(self.exam_score)
#定義函數,將對象集合寫到文件,上面三個函數有縮進,屬於Student類的函數,本函數屬於全局函數
defprint_to_file(path,stu_arr):
#打開文件,操作完成後自動關閉文件
withopen(path,'w')asfile:
#調用operator給集合排序
sort_attr=operator.attrgetter('stu_no')#指定排序屬性
stu_arr.sort(key=sort_attr)#排序
forstuinstu_list:
str=stu.__str__()#將對象轉換為字元串
file.write(str+' ')#將字元串寫入文件
#主函數,運行的入口
if__name__=='__main__':
#創建幾個學生對象,按__init__的順序輸入參數
s1=Student('1001','zhangsan',31,69)
s2=Student('1003','wangwu',28,32)
s3=Student('1004','zhaoliu',77,78)
s4=Student('1002','lisi',19,89)
#創建集合
stu_list=[s1,s2,s3,s4]
#文件路徑
f='d:\aaa.txt'
print_to_file(f,stu_list)
Ⅸ python怎麼查看object 里的成員變數
首先通過一個例子來看一下本文中可能用到的對象和相關概念。
對於實現了__call__的類實例,這個方法會返回False。如果目的是只要可以直接調用就需要是True的話,不妨使用isinstance(obj, collections.Callable)這種形式。我也不知道為什麼Callable會在collections模塊中,抱歉!我猜大概是因為collections模塊中包含了很多其他的ABC(Abstract Base Class)的緣故吧:)
3.2. 獲取對象信息
getmembers(object[, predicate]):這個方法是dir()的擴展版,它會將dir()找到的名字對應的屬性一並返回,形如[(name, value), ...]。另外,predicate是一個方法的引用,如果指定,則應當接受value作為參數並返回一個布爾值,如果為False,相應的屬性將不會返回。使用is*作為第二個參數可以過濾出指定類型的屬性。
getmole(object):還在為第2節中的__mole__屬性只返回字元串而遺憾嗎?這個方法一定可以滿足你,它返回object的定義所在的模塊對象。
get{file|sourcefile}(object):獲取object的定義所在的模塊的文件名|源代碼文件名(如果沒有則返回None)。用於內建的對象(內建模塊、類、函數、方法)上時會拋出TypeError異常。
get{source|sourcelines}(object):獲取object的定義的源代碼,以字元串|字元串列表返回。代碼無法訪問時會拋出IOError異常。只能用於