一. python 類中的變數分為類變數,例項變數,self
# coding:utf-8
class a(object):
date = '20201215' # 類變數
def __init__(self):
self.name = 'stephen' # 例項變數
def __str__(self):
return self.date + ' ' + self.name
new = a()
print(new)
print(new.date)
print(new.name)
20201215 stephen
20201215
stephen
1. 類變數
在類中方法之外定義的變數,在類中使用,不需要例項化,通過self.xx或者class.xx就可使用,例項物件可通過物件.xx進行使用。
2. 例項變數
在類中方法內定義的變數,通過self.xx就可使用,例項物件可通過物件.xx進行使用。
3. self
self就是本類物件
二. 例項方法,靜態方法,類方法
class date:
day = 10 # 類變數
def __init__(self, year, month, day): # 建構函式
self.year = year
self.month = month
self.day = day
def __str__(self):
return ("--").format(year=self.year, month=self.month, day=self.day)
def yesterday(date):
date.day -= 1
def print_year(self, number): # 例項方法
print(self.year + number)
@property
def weather(self): # 屬性方法
return 'rainny'
@staticmethod # 靜態方法:校驗輸入值型別和大小是否符合咱們的型別。
def var_str(date_str):
year, month, day = tuple(date_str.split("-"))
if 0 < int(year) and 0 < int(month) <= 12 and 0 < int(day) < 32:
return true
else:
return false
@classmethod # 類方法
def class_method(cls, date_str):
if cls.var_str(date_str): #這裡是呼叫靜態方法,注意要用cls.靜態方法,原理和例項方法中的self一樣,自己可以試試,否則是不能讀取的。
year, month, day = tuple(date_str.split("-"))
return cls(int(year), int(month), int(day))
new_day = date.class_method("2018-10-10")
print(new_day)
# 列印結果
2018 - 10 - 10
1. 例項方法
例項方法的是類中最常用的方法,方法本身帶self引數,非本類中例項化後才能使用該方法,本類中呼叫例項方法通過self.xx()
2. 靜態方法
3. 類方法
4. 屬性方法
類屬性方法無傳參且必須有返回值,例項化物件呼叫的時候通過調取屬性的方式進行呼叫
三. 建構函式,析構函式
class person(): #定義類
def info(self): #例項方法
self.name='xiaoming'
print("shi li fang fa")
def __del__(self): #析構函式,類銷毀自動執行
print("類銷毀的時候就執行")
zwj=person()
zwj.info()
del zwj #銷毀類
print("*****===")
shi li fang fa
類銷毀的時候就執行
*****===
建構函式,例項化就自動呼叫該方法,一般該方法會放一些屬性或者初始化的東西;
析構函式,類例項被銷毀的時候自動執行
參考:python_類裡的方法及變數,python3:類方法,靜態方法和例項方法以及應用場景,一張圖了解python 類方法與類變數 類變數與例項變數
python中的類,類變數,例項變數
這幾天寫 的時候碰到乙個python中的小問題,找了好半天才解決,所以記錄下來。classa object def init self self.x y def call self for i in range 5 print x self.x print y y 輸出的結果是 x 5,5,5,5,...
Python 類方法,例項方法,類變數,例項變數
建立乙個person類 class person object per v per v 建立乙個類變數 def init self,name,age 初始化類例項變數 self.name name self.age age definstance method self 建立類例項方法 print ...
Java中類變數 類方法 例項變數 例項方法
在理解類變數 類方法之前先看一段 class person public static void showtotalfee 在person類中定義了3個變數,有2個變數是直接型別 變數名,而第3個變數的型別前加了static這個關鍵字。類變數也叫靜態變數,也就是在變數前加了static 的變數 類變...