python helloword_python学习笔记- python中的类
動態語言與靜態語言的最大的不同就是,函數和類的定義,不是在編譯的時候創建的,而是在運行的時候創建的。
例如我們寫了一個叫demo.py的模塊,在里面定義了一個類:
class Demo(object):
pass
然后我們在另一個模塊helloword.py中引入了該模塊:
from demo import Demo
class HelloWrold(object):
pass
當我們執行helloworld.py時,import入Demo則會創建一個Demo類。
我們可以用type()函數類看看Demo是啥類型。
type(Demo) // Demo是一個type類型
type(Demo()) //Demo()是一個Demo的實例,那么他是一個Demo類型。
我們定義的類的類型都是type類型,就跟python內置的類型int、float、string等一樣~~其實我們可以這么理解,int、float、string其實也是歸納了世界上上常見的數據類型,例如一類由一串文字組成的數據,我們就叫這種數據類型為string。 那么我們自定義類一直數據類型叫Student,包含了年齡、性別、各科成績等。我們自己將這一類數據歸納成一種數據類型叫做Student。 所以從這個較多來看,我們自己創建的一個類其實跟python定義的int、float啥的是一樣的~~ 上面扯了這么多類的概念,也知道了實例是根據類來創建,類是在運行過程中創建的。那么類又是這么來的呢?
類是用type()函數創建的。
type函數不是用來判斷類型的嗎?沒錯,type還可以用來創建類。
type(what, base=None, attrs=None)
python在用type創建類的時候,接收三個參數
what,要創建的類名
要繼承的父類,用一個tuple表示。
參數、方法,用一個字典表示
我們來舉一個例子:
def __init__(self, name):
self.__name = name
def print_name(self):
print self.__name
Student = type("Student", (object,), {"__init__": __init__, "print_name": print_name, "age": 25})
student = Student("Charlie")
student.print_name()
print student.age
上面的例子中,我們利用type創建了一個類,并可以根據這個類來創建一個實例。
我們平時用關鍵字class定義一個類,其實僅僅是定義了一個類。Python解釋器讀取到用class定義的類的時候,讀取了我在里面寫的屬性和方法,然后用type()創建了這個類。
總結
以上是生活随笔為你收集整理的python helloword_python学习笔记- python中的类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 先学python还是先学数据库_跟着销售
- 下一篇: sql 字符串比较大小_SQL 数据分析