16 Python 物件導向高階

2021-09-09 08:00:45 字數 996 閱讀 5680

1、使用__slots__限制屬性:

class student(object):

pass

s= student()

s.name="jack"

def set_name(self,name):

self.name=name

from types import methodtype

s.set_name=methodtype(set_name,s)

s.set_name("hello")

給class 繫結方法

def set_age(self,age):

self.age=age

student.set_age=set_age

這樣所有student例項都可呼叫該方法

如要限制例項的屬性,可以使用slots

class student(object):

__slots__=('name','age')

除非在子類中也定義  __slots__ 

class midstudent(student):

__slots__=("height","weight")

這樣就拓展了限制屬性

2、使用@property 裝飾屬性,實現get/set

class student(object):

@property

def age(self):

return self._age

@age.setter

def age(self,age):

if not isinstance(age,int):

raise valueerror("age must be an integer")

self._age=age

3、多重繼承/mixin

class dog(mammal, runnablemixin, carnivorousmixin):

pass

物件導向 高階

json方式的物件導向 json 把方法包在json裡 json物件導向 有人管他叫 命名空間 在公司裡 把同一類 的方法包在一起 拖拽和繼承 物件導向的拖拽 改寫原有的拖拽 繼承 asdf 拖拽 instanceof 檢視物件是某個類的例項 使用繼承 限制範圍的拖拽類 建構函式的偽裝 屬性的繼承 ...

物件導向高階

public class person public void print public class student extends person 重寫了父類方法 public void print public class demo public class demo 1.不能new這個類,只能靠...

物件導向高階

私有屬性,不能被子類繼承,在屬性的前面加上 就變為了私有屬性 私有方法,不能被子類繼承,在方法的前面加上 就變為了私有方法 只在前面加,後面不加,一般前後都有 的,屬於類當中自帶的方法或屬性 class class test1 str1 a 私有屬性 def init self pass def m...