python類的使用
⑴ python類的定義與使用是什麼
類Class:用來描述具體相同的屬性和方法的對象的集合。定義了該集合中每個對象所共有的屬性和方法。對象是類的示例。
類定義完成時(正常退出),就創建了一個 類對象。基本上它是對類定義創建的命名空間進行了一個包裝;我們在下一節進一步學習類對象的知識。原始的局部作用域(類定義引入之前生效的那個)得到恢復,類對象在這里綁定到類定義頭部的類名(例子中是 ClassName )。
基本語法
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
以上內容參考:網路-Python
⑵ python中如何定義類
一、類定義:
class <類名>:
<語句>
類實例化後,可以使用其屬性,實際上,創建一個類之後,可以通過類名訪問其屬性
如果直接使用類名修改其屬性,那麼將直接影響到已經實例化的對象
類的私有屬性:
__private_attrs兩個下劃線開頭,聲明該屬性為私有,不能在類地外部被使用或直接訪問
在類內部的方法中使用時self.__private_attrs
類的方法
在類地內部,使用def關鍵字可以為類定義一個方法,與一般函數定義不同,類方法必須包含參數self,且為第一個參數
私有的類方法
__private_method兩個下劃線開頭,聲明該方法為私有方法,不能在類地外部調用
在類的內部調用slef.__private_methods
類的專有方法:
__init__構造函數,在生成對象時調用
__del__析構函數,釋放對象時使用
__repr__列印,轉換
__setitem__按照索引賦值
__getitem__按照索引獲取值
__len__獲得長度
__cmp__比較運算
__call__函數調用
__add__加運算
__sub__減運算
__mul__乘運算
__div__除運算
__mod__求余運算
__pow__稱方
示例:
[python]view plain
#類定義
classpeople:
⑶ Python類的用法實例淺析
Python類的用法實例淺析
這篇文章主要介紹了Python類的用法,以實例形式簡單分析了Python中類的定義、構造函數及使用技巧,需要的朋友可以參考下
本文實例講述了Python類的用法。分享給大家供大家參考。具體如下:
先看一段代碼:
#!/usr/bin/env python
class Test:
def __init__(self,msg="hello"):
self.wel=msg
print "init"
def go(self,name,do):
print self.wel+"go! "+name+" "+do
d=Test("hi,")
d.go("naughty","fight")
上面的代碼演示了:
1、構造函數以及帶參數(參數有默認值)構造函數
2、構造類實例
3、使用類實例調用類方法
希望本文所述對大家的Python程序設計有所幫助。
⑷ python中的類怎麼用
python中的類用法:
在python中如果要使用類,需要先將類實例化,實例化之後就可以調用類中的方法了
例如:「變數名=類名()」
示例如下:
執行結果:
想了解更多python知識,請觀看Python基礎視頻教程(python語言基礎)視頻!!
⑸ python 什麼時候用類方法
用class來聲明一個類,也就是創建了一個類。使用class關鍵字,後面接類的名稱,然後一個冒號
還有兩種寫法,他們都是等價的。
聲明類以後,我們使用__init__函數來重載構造函數,如圖所示,在類中都有一個self參數,他是任何類都有的,代表實例本身,假如我們想要給實例設置一個name屬性,那麼我們用下面的方法來設置。__init__後面的參數都可以在創建實例的時候使用。
當然我們可以任意設置__init__方法的參數個數
通常我們使用__del__函數來重載析構函數,不過如果你沒有在類的聲明中寫這個方法,它也會默認加上去的。所以,通常都不寫。。。
你還可以在類中聲明一個方法,然後在創建實例以後,我們再調用方法。聲明方法如下:
創建實例
創建實例我們用賦值的方式,我們可以直接將參數輸入到類中。然後用p.name來調用類的屬性。
⑹ python 中的 類方法 @ classmathod 怎麼用 請舉一個最簡單的例子
classmethod修飾符對應的函數不需要實例化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可以來調用類的屬性,類的方法,實例化對象等。
例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class A(object):
bar = 1
def func1(self):
print ('foo')
@classmethod
def func2(cls):
print ('func2')
print (cls.bar)
cls().func1() # 調用 foo 方法
A.func2() # 不需要實例化
輸出為:
⑺ python 如何調用類的方法
以numpy為例,首先創建一個對象:
In[32]:a=numpp.arange(10)
然後,a就擁有了類的方法,例如求和:
In[33]:a.sum()
Out[33]:45
也可以使用類的方法,將其應用到類的對象上,例如:
In[34]:numpp.sum(a)
Out[34]:45
⑻ python中「類」有什麼用為什麼要使用類
簡單來說,類是一種高級抽象,就是一種高級的數據類型,是對象的藍圖,就是用來定義你要用的對象的屬性和行為的,為什麼要使用類,你可以和之前沒有類的時候進行比較,比如和結構化編程比較,有了類有什麼好處,總結就是封裝、繼承、多態,這些要你自己理解,越高級越抽象,越接近人的思維,越容易理解與使用,慢慢體會
⑼ python中可以直接用類調用方法嗎
這里先肯定的回答一下:可以
python里方法在類中是作為類的屬性的,在解釋之前,這邊先給個例子
>>>classPizza(object):
...radius=42
...def__init__(self,size=10):
...self.size=size
...defget_size(self):
...returnself.size
...@staticmethod
...defmix_ingredients(x,y):
...returnx+y
...defcook(self):
...returnself.mix_ingredients(self.cheese,self.vegetables)
...@classmethod
...defget_radius(cls):
...returncls.radius
>>>Pizza.get_size
<unboundmethodPizza.get_size>
>>>Pizza.get_size()
Traceback(mostrecentcalllast):
File"<stdin>",line1,in<mole>
TypeError:unboundmethodget_size()(gotnothinginstead)
>>>Pizza.get_size(Pizza(42))
42
>>>Pizza(42).get_size
<boundmethodPizza.get_sizeof<__main__.Pizzaobjectat0x7f3138827910>>
>>>Pizza(42).get_size()
42
>>>m=Pizza(42).get_size
>>>m()
42
>>>m=Pizza(42).get_size
>>>m.__self__
<__main__.Pizzaobjectat0x7f3138827910>
>>>m==m.__self__.get_size
True
>>>Pizza().cookisPizza().cook
False
>>>Pizza().mix_ingredientsisPizza.mix_ingredients
True
>>>Pizza().mix_ingredientsisPizza().mix_ingredients
True
>>>Pizza.get_radius
<boundmethodtype.get_radiusof<class'__main__.Pizza'>>
>>>Pizza().get_radius
<boundmethodtype.get_radiusof<class'__main__.Pizza'>>
>>>Pizza.get_radiusisPizza().get_radius
True
>>>Pizza.get_radius()
42
在上面的例子中可以看出python中類有三種方法,分別是類方法,靜態方法,實例方法。而能讓類只接調用的只有類方法,或通過一些小技巧,類也可以調用實例方法如上面例子中的調用
>>>Pizza.get_size(Pizza(42))
42
這邊順便說明下這三中方法的區別
1類方法的特點是類方法不屬於任何該類的對象,只屬於類本身
2類的靜態方法類似於全局函數,因為靜態方法既沒有實例方法的self參數也沒有類方法的cls參數,誰都可以調用
3.實例方法只屬於實例,是實例化的對象才能調用
⑽ python類參數有什麼用
類的變數 由一個類的所有對象(實例)共享使用。只有一個類變數的拷貝,所以當某個對象
對類的變數做了改動的時候,這個改動會反映到所有其他的實例上。
看下面例子就明白了,所有Person的實例共享一個類參數population,但每一個實例自己的參數和方法不共享
class Person:
'''Represents a person.'''
population = 0
def __init__(self, name):
'''Initializes the person's data.'''
self.name = name
print '(Initializing %s)' % self.name
# When this person is created, he/she
# adds to the population
Person.population += 1
def __del__(self):
'''I am dying.'''
print '%s says bye.' % self.name
Person.population -= 1
if Person.population == 0:
print 'I am the last one.'
else:
print 'There are still %d people left.' % Person.population
def sayHi(self):
'''Greeting by the person.
Really, that's all it does.'''
print 'Hi, my name is %s.' % self.name
def howMany(self):
'''Prints the current population.'''
if Person.population == 1:
print 'I am the only person here.'
else:
print 'We have %d persons here.' % Person.population
swaroop = Person('Swaroop')
swaroop.sayHi()
swaroop.howMany()
kalam = Person('Abl Kalam')
kalam.sayHi()
kalam.howMany()
swaroop.sayHi()
swaroop.howMany()