python學習筆記(五)

面向對象方法

元組的二義性:不明確參數表明的含義python

circle=(2,4,6)
def distance_from_origin(x,y):
	return "返回x,y座標"
def edge_distance_from_origin(x,y,radio):
	return "返回 x,y,radio"
>>> distance_from_origin(*circle[:2])
'返回x,y座標'
>>> edge_distance_from_orgin(*circle)
'返回 x,y,radio' 

經過使用指定的元組,解決貨值元組順序的問題以及使用元組拆分的問題ui

>>> Person=collections.namedtuple("Person",'name age sex')
>>> p=Person("tsui",18,'man')
>>> p
Person(name='tsui', age=18, sex='man')

 附加方法的實現(應避免使用兩個_來頭來命名方法)orm

+   -->__add__()對象

len -->__len__()blog

-   -->__sub__()ci

 

python中的類從object衍生而來it

子類中任何方法均可能被重寫io

使用super()調用父類方法form

自定義類

語法:class

  class className:

    suite

  class className(base_classes):

    suite

pass 表明空語句,什麼也不作

屬性和方法

Person類

class Person:
	def __init__(self, name="",age=0,sex="man"):
		self.name = name
		self.age=age
		self.sex=sex

	def __eq__(self,other):
		return self.name==other.name and self.age==other.age and self.sex==other.sex
		
	def __str__(self):
		return "{0.x!r},{0.y!r}".format(self)

	def Speak(self):
		print("{0.name} say i'm {0.age} ".fromat(self))

  

import Animal

a=Animal.Person(name="hiuyeung",age=18,sex="man")
if a.name=="hiuyeung":
	print(" good guy !")
else:
	print(" bad guy !")

在對方法進行調用時,python會自動提供一個參數,對對象自己的引用self,全部對象屬性都必須由self進行限定。

對象建立過程

1,調用__new__(),(自身的或者父類的)

2,調用__init__()

相關文章
相關標籤/搜索