往列表里添加多個值可以用 extend():
創新互聯建站專注于企業網絡營銷推廣、網站重做改版、宜川網站定制設計、自適應品牌網站建設、成都h5網站建設、購物商城網站建設、集團公司官網建設、外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為宜川等各大城市提供網站開發制作服務。
class?User():
def?__init__(self,?first_name,?last_name):
self.first?=?first_name
self.last?=?last_name
def?titl(self):
list?=?[]
#?list.append(self.first_name)
#?list.append(self.last_name)
list.extend([self.first,?self.last])
print(list)
me?=?User('ssx',?'xing')
print(me.first?+?',?'?+?me.last)
me.titl()
首先指出你的問題:拼寫錯誤
建立class ElectricCar(Car) 子類的時候
初始化 屬性時? def __int__改為__init__ 少打了一個 i??
造成Python 識別不到屬性battery_size
改過來看一下
~~我也被繞進去好久~~~
代碼看起來沒有問題。如果在python3上不能用,應該也只需要小小的調整。原則上應該跑得通。
不過話說回來,這樣的技巧通常在python里用不上。因為python的強大并不是因為它的面向對象屬性。
而且這些寫代碼的可讀性也較差。 python的強大在于它通用,它與C的良好結合,最重要的是它是“腳本”。 可以動態的做任何事情,既然它的動態很強大,你就不需要寫這樣的代碼。
直接這樣
s1= AnyClass()
s1.any_variable = some_value
這樣足夠了。因為python可以自動給未知的變量,增加一個內部屬性。所以我經常寫下面的這樣的代碼
class?Config:
pass
conf?=?Config()
conf.mysql_ip?=?"127.0.0.1"
這樣就可以了
處理屬性的重要屬性和函數
1、特殊屬性
__class__:對象所屬類的引用(即obj.__class__和type(obj)的作用相同)。Python中的某些特殊方法比如 __getattr__,只在對象的類中尋找,而不在實例中尋找。__dict__:一個映射,存儲對象或類的可寫屬性。__slots__:類可以定義這個屬性,限制實例有哪些屬性。
2、內置函數
dir([object]):列出對象的大多數屬性。getattr(object,name[,default]):從object對象中獲取name字符串對應的屬性。獲取的屬性可能來自對象所屬的類或超類。hasattr(object,name):若object對象中存在指定的屬性,或者能以某種方式(如繼承)通過object對象獲取指定的屬性,返回True。setattr(object,name,value):把object對象指定屬性的值設為value,前提是object對象能接受那個值。這個函數可能會創建一個新屬性,或者覆蓋現有的屬性。var([object]):返回object對象的__dict__屬性。
相關推薦:《Python視頻教程》
3、特殊方法
__delattr__(self,name):只要使用del語句刪除屬性,就會調用這個方法。__dir__(self):把對象傳給dir函數時調用,列出屬性。__getattr__(self,name):僅當獲取指定的屬性失敗,搜索過obj,Class和超類之后調用。__getattribute__(self,name):嘗試獲取指定的屬性時總會調用這個方法。不過尋找的屬性是特殊屬性或特殊方法時除外。為了防止無限遞歸,__getattribute__方法的實現要使用super().__getattribute__(obj,name)。__setattr__(self,name,value):嘗試設置指定的屬性時總會調用這個方法。點號和setattr內置函數會觸發這個方法。
相關推薦:
Python中的屬性和特性是什么
當前標題:函數添加屬性python 增加函數python
當前路徑:http://m.newbst.com/article8/dosjiip.html
成都網站建設公司_創新互聯,為您提供網站排名、品牌網站建設、Google、搜索引擎優化、品牌網站制作、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯