python之方法和屬性

2021-06-22 23:16:22 字數 2778 閱讀 2659

#構造方法 __init__(self)

class bird:

def __init__(self):

self.hunger = true;

def eat(self):

if(self.hunger):

print("aaaah....");

self.hunger = false;

else:

print("no. thanks");

b = bird();

print(b.eat());

print(b.eat());

#繼承##不可以呼叫a.eat();

class songbird(bird):

def __init__(self):self.sound = "squawk!";

def sing(self): print(self.sound);

a = songbird();

a.sing();

a.sing();

#呼叫未繫結的超類構造方法

__metaclass__=type #super函式只在新式類中起作用

class bird:

def __init__(self):

self.hunger = true;

def eat(self):

if(self.hunger):

print("aaaah....");

self.hunger = false;

else:

print("no. thanks");

class songbird(bird):

def __init__(self):

super(songbird, self).__init__();

self.sound = "squawk!";

def sing(self):

print( self.sound );

a = songbird();

a.sing();

a.eat();

#訪問屬性

class rectange:

def __init__(self):

self.width = 0;

self.height = 0;

def setsize(self, size):

self.width , self.height = size;

def getsize(self):

return self.width, self.height;

r = rectange();

r.width = 10; #可以訪問屬性

r.height = 5;

print(r.width, r.height);

r.setsize([100, 50]);

print(r.getsize());

#property函式的使用

__mataclass__= type; #新式類

class rectange:

def __init__(self):

self.width = 0;

self.height = 0;

def setsize(self, size):

self.width , self.height = size;

def getsize(self):

return self.width, self.height;

size = property(getsize, setsize);

r = rectange();

r.width = 10;

r.height = 5;

print(r.size);

r.size = [100, 50];

print(r.width);

#靜態方法和類成員方法

#靜態方法:定義時沒有self引數,能被類本身直接呼叫

#類成員方法:定義時有引數cls,能被類直接呼叫;

##方法一:裝入statimethod和classmethod型別

__mataclass__ = type;

class myclass:

def smeth():

print("that is a static method");

smeth = staticmethod(smeth);

def cmeth(cls):

print("that is a class method of ,", cls);

cmeth = classmethod(cmeth);

print(myclass.smeth());

print(myclass.cmeth());

##方法二:使用@操作符,在方法的上方將裝飾器列出

__mataclass__ = type;

class myclass:

@staticmethod

def smeth():

print("that is a static method");

# smeth = staticmethod(smeth);

@classmethod

def cmeth(cls):

print("that is a class method of ,", cls);

#cmeth = classmethod(cmeth);

print(myclass.smeth());

print(myclass.cmeth());

Python屬性和方法

類屬性 類屬性,直接在類中定義的屬性是類屬性,類屬性可以通過類或類的例項訪問到,但是類屬性只能通過類物件來修改,無法通過例項物件修改 例項屬性 例項屬性,通過例項物件新增的屬性屬於例項屬性,例項屬性只能通過例項物件來訪問和修改,類物件無法訪問修改 類方法 例項方法 靜態方法 定義乙個類 class ...

Python物件導向之私有屬性和方法

定義方式 在定義屬性或者方法時,在屬性名或者方法名前面增加兩個下劃線,定義的就是私有屬性或方法 沒使用私有屬性前 class women def init self,name,age self.name name self.age age def secret self print s 的年齡是 d...

Python 類屬性和方法

import types class dog object slots name color info 定義 slots 該類中只允許 類物件 動態增加 name,color,info,body len 屬性或方法 都是例項屬性或方法 slots 對類的 動態新增屬性和方法 沒有限制,而 類物件 不...