3.請問以下**存在什麼問題?
>>
>
class
test
:def
__init__
(self, x, y)
:return x + y
init方法只能return none
程式設計題:
0.小李做事常常丟三落四的,寫**也是一樣,常常開啟檔案又忘記關閉。你能不能寫乙個fileobject類,給檔案物件進行包裝,從而確認在刪除物件時檔案能自動關閉?
class
fileobject
:def
__init__
(self)
: name =
input()
self.article =
open
(name,
'w')
content =
input
('請輸入您想新增的內容:'
) self.article.write(content)
def__del__
(self)
: self.article.close(
)a = fileobject(
)
還是沒有利用形參來進行input操作,修改**如下:
class
fileobject
:def
__init__
(self,name,content)
: self.name = name
self.article =
open
(self.name,
'w')
self.content = content
self.article.write(self.content)
def__del__
(self)
: self.article.close(
)a = fileobject(
'c:\\users\\羊羊\\desktop\\1.txt'
,'asdasf'
)
1.按照以下要求,定義乙個類實現攝氏度到華氏度的轉換**換公式:華氏度=攝氏度*1.8+32)
要求:我們希望這個類盡量簡練地實現功能。如下:
>>
>
print
(c2f(32)
)89.6
首先發現乙個問題
class
c2f(
float):
pass
print
(c2f(32)
)輸出為32.0
此時該類是繼承了浮點的功能,所以直接輸出為32.0
class
c2f:
def__init__
(self,name)
:pass
pass
print
(c2f(32)
)__main__.c2f object at 0x00000013794cfcc8
>
此時輸出的是乙個位址,因為形參進入後傳回了乙個位址引數回來
此時列印類物件c2f()則會輸出位址
所以可以看到,除了繼承乙個靜態函式,其他直接列印類物件都會直接列印位址,繼承基類也是一樣
所以,當繼承了乙個靜態函式,那麼輸出的值是固定的,則需要用到new函式在輸出時候開闢空間重新定義在返回乙個值。所以本題可以這樣做:
class
c2f(
float):
def__new__
(cls,name)
:return
super()
.__new__(cls,name*
1.8+
32)
2.定義乙個類繼承於int型別,並實現乙個特殊功能:當傳入的引數是字串的時候,返回該字串中所有字元的ascii碼的和(使用ord()獲取乙個字元的ascii碼值)。
classa(
int)
:def
__new__
(cls,string )
: count =
0for each in string:
count = count +
ord(each)
string = count
return
super()
.__new__(cls,string)
print
(a('abcd'
))
isinstance(a,b)
a,b是否為一種型別
小甲魚第31課課後練習
0.pickle的實質是什麼?c4f nhjfhy,gki 7e,67 1.使用pickle的什麼方法儲存資料?kx l0j d19 9k owuzjiq 3.使用pickle能不能儲存為 txt 型別的檔案?8g 0a ow5ytsf 8r o n n6d4 答 可以,不過開啟後是亂碼,因為是以二...
小甲魚第27課課後練習
0.請問集合的唯一作用是什麼呢?答 集合幾乎所有的作用就是確保裡邊包含的元素的唯一性,就像世界上沒有兩片完全相同的樹葉一樣,集合內不可能存在兩個相同的元素!1.如果你希望建立的集合是不變的,應該怎麼做?答 frozenset 2.請目測以下 會列印什麼內容?num set set 1,2,3,4,5...
Oracle第七課課後作業
乙個公司有很多部門有上級部門 乙個員工有他所在的部門,根據員工編號找到他所在的所有上級部門。編號姓名部門1 張三3012李四 401編號 名稱上級部門 301財務部 1111 集團中心22 財務總監 0顯示出張三的上級部門 財務部,集團中心,財務總監 建立員工表 create table emp i...