1. 程式人生 > >Python3 類函式和靜態函式

Python3 類函式和靜態函式

# -*- coding:utf-8 -*-

# 類函式 和 靜態函式

class People(object):

    def __init__(self,name,age):

        # 呼叫父類的初始化函式
        super(People, self).__init__()
        # 初始化當前類物件的一些屬性
        self.name = name
        self.age = age
    # 物件函式,只能由物件呼叫
    def eat(self):

        print ('該吃飯了...')

    # 類函式
    # 裝飾器是以@開頭,@結構的稱之為語法糖,裝飾器的作用主要是給一些現有的函式增加一些額外的功能
    @classmethod
    def work(cls,time):
        # cls  class 如果是類呼叫該函式,cls指的就是這個類
        # 如果是物件呼叫該函式,cls指的就是這個物件的型別
        print (cls)
        print (time)
    @classmethod
    def sleep(cls):
        print ('每一個類函式前都需要新增裝飾器')

     # 靜態函式
     # @staticmethod 描述的函式稱為靜態函式,靜態函式可以由類和物件呼叫,函式中沒有隱形引數
    @staticmethod
    def run(time):
        print ('跑步%s分鐘'%time)



# 物件函式只能由物件呼叫
# 類函式由類呼叫,也可以用物件呼叫
People.work(10)
p1 = People('張三',22)
p1.work(20)

People.run(10)
p1.run(20)

相關推薦

Python3 函式靜態函式

# -*- coding:utf-8 -*- # 類函式 和 靜態函式 class People(object): def __init__(self,name,age):

pythonl函式靜態函式

#-*- coding:utf-8 -*- #上午繼承 #類函式 和 靜態函式 class People(object): total = 0 #類變數 def __init__(self):

C# 靜態靜態函式

學習靜態類和靜態函式。 這篇部落格的內容來自MSDN,當然內容是我自己看MSDN翻譯出來的。 正文 靜態類和非靜態類其實基本相同。兩者有一處不同:靜態類不能被例項化。換句話來說,你不能夠用new去為一個靜態類例項出一個物件來。因為靜態類中根本沒有例項成

關於靜態函式靜態變數

#ifndef __GLOBAL_FUN__ #define __GLOBAL_FUN__ class GLOFUN{ public: static int debug; //錯誤1:不要在定義時賦值,即寫成static int debug=1

Java中的靜態變數靜態函式

Java中的靜態變數和靜態函式 靜態變數:    在JAVA中類在宣告的時候,其實並沒有申請和產生記憶體空間,就如同我們的一個切實可行的想法,但其實並沒有去實施這個想法。而類只有在用這種資料型別建立一個類的物件的時候,才能在記憶體中申請和產生類大小的記憶體空間,這一塊記憶體空間是用來存放

python3基礎(七)-遞迴函式匿名函式

1、遞迴函式 函式內呼叫自己本身函式,就叫做遞迴函式。 計算一個數字的階乘n!=1*2*3*4*......*n 公式演變: n! = 1 * 2 * 3 * 4 * ...... * (n - 2) * (n - 1) * n = n * (n - 1) * (n - 2) *

C++靜態成員靜態函式

C++類的靜態成員變數是需要初始化的,實際上不是為了初始化而初始化,本質上是要定義,分配記憶體。需要在類的外部進行定義。 靜態成員變數: 靜態成員變數和常用的全域性變數比較類似。 先看一個頭檔案animal.h #ifndef DUOTAIJINGTAI_ANIMAL_H #defi

c/c++靜態變數靜態函式

c語言中 c語言中需要記憶體來存放資料。而記憶體主要分為兩類:靜態儲存區和動態儲存區; 靜態儲存區分為:只讀資料(READONLY DATA)區、以讀寫資料(RW DATA)區、未初始化區(BSS)。它們都是在程式編譯連線階段確定的,在程式執行的階段不會改變。 動

C++中 執行緒函式靜態函式成員函式作為回撥函式

 執行緒函式為靜態函式:   執行緒控制函式和是不是靜態函式沒關係,靜態函式是在構造中分配的地址空間,只有在析構時才釋放也就是全域性的東西,不管執行緒是否執行,靜態函式的地址是不變的,並不在執行緒堆疊中static只是起了一個裝飾的作用,所以二者並沒有必然的關係   執行緒也是一種

方法靜態方法(python3.6)

靜態方法和類方法都可以通過類和物件呼叫 class statics_test(): def __init__(self): self.class_variable=7#物件變數 class_variable=6#

一、C語言靜態變數靜態函式

static C語言        C語言程式可以看成由一系列外部物件構成,這些外部物件可能是變數或函式。而內部變數是指定義在函式內部的函式引數及變數。外部變數定義在函式之外,因此可以在許多函式中使用。由於C語言不允許在一個函式中定義其

Python3.4中filter函式,map函式reduce函式

filter函式: filter()為已知的序列的每個元素呼叫給定的布林函式,呼叫中,返回值為非零的元素將被新增至一個列表中>>> def f1(x): if x > 20: return True else: return False >&

【OpenCV3影象處理】Mat詳解 之 元素的獲取與賦值 ( 對比.at<>()函式 .ptr<>()函式

Mat中畫素的獲取與賦值 計算機視覺中,影象的讀取是影象處理的基礎,影象就是一系列畫素值,OpenCV使用資料結構cv::Mat來儲存影象。cv::Mat是一個矩陣類,矩陣中每一個元素都代表一個畫素,對於灰度影象,畫素用8位無符號數,0表示黑色,255表示白色。對於彩色

淺談Opencv Mat(常用建構函式成員函式整理)

在Opencv1代的時候,是使用lplImage 和 CvMat 資料結構來表示影象的。他們都是C語言的結構,申請的記憶體需要自己手動管理。從Opencv2.3往後就引入了Mat類,他可以自動管理記憶體,而我接觸opencv開始,用的就是Mat類,再之後在學習o

什麼是虛擬函式,虛擬函式普通函式有何不同,帶有虛擬函式什麼時候都可以例項化嗎?

程式碼或者內容有任何問題,請留言相告,不勝感激!!!!! 什麼是虛指標? 虛指標又叫虛擬函式指標是一個虛擬函式的實現細節,帶有虛擬函式的類中每一個物件都有一個虛指標指向該類的虛擬函式表 虛擬函式的入口地址和普通函式的入口地址有什麼不同? 每個虛擬函式都在虛表中佔有一個表項

C++實現輸入輸出運算子過載、友元函式成員函式實現複數Complex

今天答應幫朋友做一個C++題目,頗費了一番周折,終於還是寫出來了,讓很久沒敲程式碼的我反省了一下,也回憶了以前學過的知識。 題目要求如下: 一、按下列要求編制複數類,並除錯通過: 1)  基本的建構函式; 2)  成員運算子+、-實現複數的加減運算; 3)  友元運算子+

用MATLAB做聚分析時非常有用的自定義距離函式標準化函式

聚類分析中,經常遇到觀測值缺失的情況. 例如統計歷史降水資料時,某個月的資料缺失了,這時用MATLAB做聚類分析時, 就需要自定義距離函式,處理nan的問題. 下面是相關的MATLAB函式,裡面有例子,可自行修改: function [ nandistance ] = n

Python3 基礎:返回函式匿名函式

返回函式 返回函式顧名思義:就是返回值是函式. 內部函式可以引用外部函式的引數和區域性變數. def lazy_sum(*args): def sum(): all = 0 for x in args: all = all

MFC操作Excel2003的CRange的Copy函式Delete函式實現方法

一、CRange類的Copy函式實現方法 具體步驟: 1.例項化一個CRange類物件range1,關聯你要拷貝的區域; 2.例項化一個CRange類物件range2,關聯你要將要貼上到的區域; 3.

C++使用建構函式初始化建構函式函式體中賦值的區別

參考:http://www.360doc.com/content/13/0607/19/1317564_291331713.shtml C++ Primer中在講建構函式初始化列表的時候有這麼一段話:  無論是在建構函式初始化列表中初始化成員,還是在建構函式體中對它們賦