在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 四、類的方法
二、Enum 的源碼
前言
一、Python 模塊簡介
一、List(列表)
五、匿名函數(shù)
三、什么是元類
二、循環(huán)語句
二、模塊的使用
三、第一個 Python 程序
線程與進程
Python
三、條件語句和循環(huán)語句綜合實例
四、對象的描述器
三、類的屬性
一、迭代
五、迭代器和生成器綜合例子
六、運算符相關的魔術方法
一、枚舉類的使用
前言
一、簡明概述
二、Python 的基本數(shù)據(jù)類型
多線程編程
五、作用域
四、包
四、枚舉的比較
四、Python 中的變量
六、類的多態(tài)
一、Python 中類也是對象
一、Python 的 Magic Method
前言
四、生成器
一、面向對象的概念
五、類的繼承
二、類
二、使用 <code>type()</code> 動態(tài)創(chuàng)建類
進程
二、set
三、主模塊和非主模塊
一、字典(Dictionary)
前言
前言
前言
前言
四、集成開發(fā)環(huán)境(IDE): PyCharm
前言
四、函數(shù)的參數(shù)
三、lsit 生成式(列表生成式)
四、自定義元類
四、類的方法
二、函數(shù)傳值問題
二、注釋
一、條件語句
一、Python 語法的簡要說明
三、函數(shù)返回值
三、基本數(shù)據(jù)類型轉換
三、屬性的訪問控制
二、Python 的安裝
前言
三、命名規(guī)范
一、Python 自定義函數(shù)的基本步驟
三、自定義類型的枚舉
五、自定義容器(Container)
二、Python 迭代器
前言
二、tuple(元組)
一、Python 簡介
前言
前言
前言
二、構造(<code>__new__</code>)和初始化(<code>__init__</code>)
前言

四、類的方法

1、類專有的方法

一個類創(chuàng)建的時候,就會包含一些方法,主要有以下方法:

類的專有方法:

方法 說明
__init__ 構造函數(shù),在生成對象時調用
__del__ 析構函數(shù),釋放對象時使用
__repr__ 打印,轉換
__setitem__ 按照索引賦值
__getitem__ 按照索引獲取值
__len__ 獲得長度
__cmp__ 比較運算
__call__ 函數(shù)調用
__add__ 加運算
__sub__ 減運算
__mul__ 乘運算
__div__ 除運算
__mod__ 求余運算
__pow__ 乘方

當然有些時候我們需要獲取類的相關信息,我們可以使用如下的方法:

  • 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 的編程規(guī)范。

示例如下,具體規(guī)則也是跟屬性一樣的,

#!/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))
    # 打印構造函數(shù)中的屬性
    print(userInfo.__dict__)
    # 直接使用類名類調用,而不是某個對象
    print(UserInfo.lv)
    # 像訪問屬性一樣調用方法(注意看get_age是沒有括號的)
    print(userInfo.get_age)

運行的結果:

Python 方法的裝飾器

上一篇:前言下一篇:二、Python 的安裝