1. 程式人生 > >Python學習筆記4:一切皆物件,所有物件都是第一類的

Python學習筆記4:一切皆物件,所有物件都是第一類的

一切都是物件

在python中下列語句其實都是一個共同點:

i = 1
s = "abcde"
def foo(): pass
class C(object): pass
instance = C()
l = [1,2]
t = (1,2) 

他們在python直譯器中執行的時候,都會在堆中新建了一個物件,然後把新建的物件繫結到變數名上。

i = 1              #新建一個PyIntObject物件,然後繫結到i上
s = "abcde"        #新建一個PyStringObject物件,繫結到s上
def foo(): pass    #新建一個PyFunctionObject物件, 繫結到foo上
class C(object): pass #新建一個類物件,繫結到C上 instance = C() #新建一個例項物件,繫結到instance上 l = [1,2] #新建一個PyListObject物件,繫結到l上 t = (1,2) #新建一個PyTupleObject物件,繫結到t上

可以看到,就算是C語言的整數,都可以使用物件的”.操作符”訪問物件的方法

#!/usr/bin/env Python
# coding=utf-8
'''
Created on 2017年8月11日
'''
b=15
print(b.__hex_
_())

第一類物件

第一類物件(英語:First-class object)在電腦科學中指可以在執行期創造並作為引數傳遞給其他函式或存入一個變數的實體。將一個實體變為第一類物件的過程叫做“物件化”(Reification)。

第一類物件不一定是面向物件程式設計所指的物件,而可以指任何程式中的實體。一般第一類物件所特有的特性為:

  • 可以被存入變數或其他結構
  • 可以被作為引數傳遞給其他函式
  • 可以被作為函式的返回值
  • 可以在執行期創造,而無需完全在設計期全部寫出
  • 即使沒有被繫結至某一名稱,也可以存在

函式、類、模組等所有物件都是第一類的,以函式作為第一類物件的為例:

#!/usr/bin/env Python
# coding=utf-8 ''' Created on 2017年8月11日 ''' def foo(text): return len(text) #1.函式存入變數 f=foo #2.函式作為引數 def show(func): size = func("python 之禪") # 等效於 foo("Python之禪") print ("length of string is : %s" % size) #3.函式作為返回值 def nick(): return foo show(f) print(nick()("abc")) #4.函式在執行期創造 exec('''def foo2(): print("haha") foo2()''') print(foo("12345")) #5.沒有被繫結至某一名稱的匿名函式lambda print(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))

相關推薦

Python學習筆記4一切物件所有物件一類

一切都是物件 在python中下列語句其實都是一個共同點: i = 1 s = "abcde" def foo(): pass class C(object): pass instance = C() l = [1,2] t = (1,2) 他們在p

Python學習筆記4Python物件

1、Python物件 所有Python物件都擁有三個特性:身份(只讀,id())、型別(只讀,type())和值。 Python型別也是物件。物件的值是否可更改被稱為物件的可改變性(mutabili

python學習筆記4變量作用域

ring 返回 模塊 func 無法使用 不返回 作用域 但是 字符 變量作用域 變量由作用範圍限制 分類:按照作用域分類 全局(global): 在函數外部定義 局部(local):在函數內部定義 變量的作用範圍: 全局變量:在整個全局範圍都有效 全局變量在局部可

python學習筆記4將list陣列資料報存到csv

1. import numpy as np np.savetxt('E:\\forpython\\featvector.csv',data_to_save,delimiter=',') 2. import pandas as pd list=[[1,2,3],[4,5,6],[7,9,9

Python學習筆記4---PYTHON類與物件

第二天---python類與物件 Python中類是抽象的模板 Class 類名 (繼承的類):縮排塊中寫類的語句 類的例項化 變數名=類名() 類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去。通過定義一個特殊的_init方法,在建立

Python學習筆記13Python面向物件程式設計

1、引言 (1)類和例項:類是物件的定義,例項是“真正的實物”。 定義類:類名通常大寫字母打頭。 class MyNewObjectType(bases): 'define MyNewObjectType class' class_su

python學習筆記2字符串

nbsp 大小 alpha .com format 大小寫 fin 判斷大小 key python學習筆記2:字符串 總結:字符串是不可變變量,不能通過下標修改其值    字符串的方法都不會改變字符串原來的值,而是新生成一個字符串 一、3種寫法——單引號,雙引號,三引號  

Python學習筆記文件處理

alt 筆記 lin 系統 顯式 當前位置 open 刷新 大小 一:打開文件 open(name,mode,[bufferSize]) name:文件路徑 mode:文件打開方式 二:文件讀取 read()方法:可以一次讀取文件的全部內容,Python把內容讀到

ESP8266學習筆記4ESP8266的SmartConfig

rtc 訂閱號 new 例程 detail smart ted tracking 不能 今天花了將近一天的時間來研究ESP8266的SmartConfig功能,這個應該算是wifi雲產品的標配。這篇文章先把SmartConfig操作一遍,我還寫了還有一篇文章梳理了物理層

Python學習筆記3簡單文件操作

name n) popu 元素 close nes pla () eof # -*- coding: cp936 -*- # 1 打開文件 # open(fileName, mode) # 參數:fileName文件名稱 # mode打開方式 # w

Python學習筆記4 高級特性_20170618

don 全部 one cat rate for 切片 表示 ict # 切片(獲取list / tuple / 字符串 中指定的元素) l = list(range(10)) l[0:3] l[:3] # 0可以省略 l[:] # 全部 l[3:] # 最後的可以省略 l

python學習筆記9正則表達式

使用 引入 常用 常用的正則表達式 需要 style pan 表達式 span 一、簡介   正則表達式就是用來查找字符串的;用來匹配一些比較復雜的字符串。   使用正確表達式需要引入re模塊 (regular定期的有規律的)    二、匹配字符串的方法

python學習筆記8異常處理

mage 可能 str 裏的 tro 信息 學習筆記 異常信息 常見 一、異常處理   在程序運行過程中,總會遇到各種各樣的錯誤。   程序一出錯就停止運行了,那我們不能讓程序停止運行吧,這時候就需要捕捉異常了,通過捕捉到的異常,我們再去做對應的處理。   如下,寫段代碼,

深度學習 Deep Learning UFLDL 最新Tutorial 學習筆記 4Debugging: Gradient Checking

style inline add tom radi posit math size tutorial 1 Gradient Checking 說明前面我們已經實現了Linear Regression和Logistic Regression。關鍵在於代價函數Cost Fun

python學習筆記9面向對象編程

數據 相同屬性 技術 -o 必須 是把 oop ack 繼承 一、面向對象編程   面向對象--Object Oriented Programming,簡稱oop,是一種程序設計思想。   還有另一種程序設計思想——面向過程編程。面向過程的思想是把一個項目、一件事情按照一定

Head First Python 學習筆記-Chapter3文件讀取和異常處理

獲取 for循環 文件 處理 pyhton find ont ren app 第三章中主要介紹了簡單的文件讀取和簡單的異常處理操作。 首先建立文件文件夾:HeadFirstPython\chapter3,在Head First Pythong官方站

Python學習筆記字符串常用操作字典三級菜單實例

rip .get isalnum 變量名 cde tro 分割 字母 isdigit 字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大寫:a_str.capitalize() 統計字符串個數:a_str.count(“x”)

Python學習筆記文件操作

dex enc 只讀 python nco 打印 如何 == continue 文件操作 對照一個word文件的操作方式,來體會文件操作的內容 打開文件:f=open(“file”),提示編碼錯誤,windows默認是GBK f=open(“file”,encoding=”

Spark學習筆記4數據讀取與保存

讀取數據 chapter byte hadoop tar .lib 文件中 api sequence Spark對很多種文件格式的讀取和保存方式都很簡單。Spark會根據文件擴展名選擇對應的處理方式。 Spark支持的一些常見文件格式如下:  1、文本文件    使用文件

hibernate框架學習筆記4主鍵生成策略、對象狀態

alt rri gen 線程安全 理論 微軟 unit conf lose 創建一個實體類: package domain; public class Customer { private Long cust_id; private Stri