類別的方法
1、類別專有的方法
一個類別創建的時候,就會包含一些方法,主要有以下方法:
類別的專有方法:
| 方法 | #說明 |
| __init__ | 建構函數,在產生物件時呼叫 |
| __del__ | 析構函數,釋放物件時使用 |
| __repr__ | 列印,轉換 |
| __setitem__ | 依索引賦值 |
| __getitem__ | #依照索引取得值 |
| __len__ | 取得長度 |
| __cmp__ | 比較運算 |
| __call__ | 函數呼叫 |
| #__add__ | 加運算 |
| __sub__ | |
| __mul__ |
當然有些時候我們需要取得類別的相關信息,我們可以使用如下的方法:
##type(obj):來取得物件的對應類型;isinstance(obj, type ):判斷物件是否為指定的type 類型的實例;hasattr(obj, attr):判斷物件是否具有指定屬性/方法;getattr(obj, attr[, default] ) 取得屬性/方法的值, 要是沒有對應的屬性則傳回default 值(前提是設定了default),否則會拋出AttributeError 例外;setattr(obj, attr, value):設定該屬性/方法的值,類似obj.attr=value;dir(obj):可以取得對應物件的所有屬性和方法名稱的清單:2、方法的存取控制
其實我們也可以把方法看成是類別的屬性的,那麼方法的存取控制也是跟屬性是一樣的,也是沒有實質上的私有方法。一切都是靠著程式設計師自覺遵守 Python 的程式規範。 範例如下,具體規則也是跟屬性一樣的,#!/usr/bin/env python # -*- coding: UTF-8 -*- class User(object): def upgrade(self): pass def _buy_equipment(self): pass def __pk(self): pass
3、方法的裝飾器
@classmethod 呼叫的時候直接使用類名類調用,而不是某個物件@property 可以像存取屬性一樣調用方法#具體的使用看下實例:#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
lv = 5
def __init__(self, name, age, account):
self.name = name
self._age = age
self.__account = account
def get_account(self):
return self.__account
@classmethod
def get_name(cls):
return cls.lv
@property
def get_age(self):
return self._age
if __name__ == '__main__':
userInfo = UserInfo('两点水', 23, 347073565);
# 打印所有属性
print(dir(userInfo))
# 打印构造函数中的属性
print(userInfo.__dict__)
# 直接使用类名类调用,而不是某个对象
print(UserInfo.lv)
# 像访问属性一样调用方法(注意看get_age是没有括号的)
print(userInfo.get_age)運行的結果:
新建檔案
預覽
Clear
- 課程推薦
- 課件下載
課件暫不提供下載,工作人員正在整理中,後期請多關注該課程~ 















