python筆記 2 1 4 5多重繼承

2021-09-22 14:01:54 字數 2157 閱讀 1447

# -*- coding: utf-8 -*-

"""created on tue may 14 11:01:33 2019

@author: user

"""class human(object):

domain = 'eukarya'

def __init__(self, kingdom='animalia',phylum='chordata',

order='primates',family='human being'):

self.kingdom = kingdom

self.phylum=phylum

self.__order = order

self.family = family

def typewrite(self):

print('this is %s typing words!' %self.family)

def add(self, n1, n2):

n = n1 + n2

print(str(n1) + '+' + str(n2) + '+' + str(n))

print('you see! %s can calculate!' %self.family)

@classmethod

def showclassmethodinfo(cls):

print(cls.__name__) #__name__屬性,其值為類名

print(dir(cls)) #使用dir列示本類的所有方法

class male(human):

def __init__(self,gender='male'):

super(male,self).__init__() #

self.gender=gender

def less(self, n1, n2):

'''為子類增加乙個名為less的方法'''

n = n1 - n2

print(str(n1) + '-' + str(n2) + '=' + str(n))

print('你看,%s 可以計算!' %self.gender)

def add(self, n1, n2):

'''為子類重新定義add方法'''

n = n1 - n2

print(str(n1) + '-' + str(n2) + '=' + str(n))

print('你看,%s 不能使用加法計算!' %self.gender)

def showclassmethodinfo(self):

print("這是 male 的class method 資訊:")

super(male,self).showclassmethodinfo()

print("\n這是 male 的 instance method 資訊:")

print(dir(self))

class female(human):

def __init__(self,gender='female'):

super(female,self).__init__() #

self.gender=gender

def add(self, n1, n2):

'''為子類重新定義add方法'''

n = n1 - n2

print(str(n1) + '-' + str(n2) + '=' + str(n))

print('你看,%s 不能使用加法計算!' %self.gender)

def div(self, n1, n2):

n = n1 / n2

print(str(n1) + '/' + str(n2) + '=' + str(n))

print('你看,%s 能使用除法計算!' %self.gender)

class somebody(male, female):

pass

print(list(filter(lambda x:x[0] != '_', dir(somebody()))))

執行:

['add', 'div', 'domain', 'family', 'gender', 'kingdom', 'less', 'phylum', 'showclassmethodinfo', 'typewrite']

python繼承 python 繼承與多重繼承

當然,如果不支援python繼承,語言特性就不值得稱為 類 派生類定義的語法如下所示 名稱 baseclassname 必須定義於包含派生類定義的作用域中。也允許用其他任意表示式代替基類名稱所在的位置。這有時也可能會用得上,例如,當基類定義在另乙個模組中的時候 class derivedclassn...

python多重字典 python字典多重

encoding utf 8 print 中國 字典的一鍵多值 print 方案一 list作為dict的值 值允許重複 d1 key 1 value 2 value 2 print d1 獲取值 print 方案一 獲取值 print list d1 key print 方案一 刪除值,會留下乙個...

Chapter 28 命名空間 多重繼承和虛繼承

using宣告 eg using std list 推薦 using指示 eg using namespace std 防止命名空間汙染,可不連續 eg namespace namespacename 命名空間可巢狀 內部的成員會把外部的同名成員遮蔽 eg namespace a 訪問如下 a a ...