日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python中類的繼承代碼實例

系統 1914 0

相對于C++的繼承編寫,Python更簡潔,而且效率也是很高的,下面編寫一個簡單Python的繼承例子。

復制代碼 代碼如下:

#!/usr/bin/python??
#filename: pyclass.py??
?
class Member:??
??????? def __init__(self, name, age):??
??????????????? self.name = name??
??????????????? self.age = age??
??????????????? print 'Member init:%s' % self.name??
??????? def tell(self):??
??????????????? print 'Name:%s,Age:%d' % (self.name, self.age),??
?
class Student(Member):??
??????? def __init__(self, name, age, marks):??
??????????????? Member.__init__(self, name, age)??
??????????????? self.marks = marks??
??????????????? print 'Student init:%s' % self.name??
??????? def tell(self):??
??????????????? Member.tell(self)??
??????????????? print 'Marks:%d' % self.marks??
?
class Teacher(Member):??
??????? def __init__(self, name, age, salary):??
??????????????? Member.__init__(self, name, age)??
??????????????? self.salary = salary??
??????????????? print 'Teacher init:%s' % self.name??
??????? def tell(self):??
??????????????? Member.tell(self)??
??????????????? print 'Salary:%d' % self.salary??
?
s = Student('Tom', 20, 80)??
t = Teacher('Mrs.Huang', 30, 50000)??
?
members = [s, t]??
for mem in members:??
??????? mem.tell()?

運行效果:

復制代碼 代碼如下:

[root@localhost hhl]# python pyclass.py???
Member init:Tom??
Student init:Tom??
Member init:Mrs.Huang??
Teacher init:Mrs.Huang??
Name:Tom,Age:20 Marks:80??
Name:Mrs.Huang,Age:30 Salary:50000?

我們同樣編寫同樣效果的C++例子:

復制代碼 代碼如下:

//filename: class.cpp??
#include ??
#include ??
using namespace std;??
?
class Member??
{??
public:??
??? Member(char *n, int a);??
??? void tell();??
private:??
??? char name[10];??
??? int age;??
};??
?
Member::Member(char *n, int a)??
{??
??? memcpy(name, n, sizeof(name));??
??? age = a;??
??? cout<<"Member init:"< <
}??
?
void Member::tell()??
{??
??? cout<<"Name:"< <<","<<"Age:"< <<",";??
}??
?
class Student:public Member??
{??
public:??
??? Student(char *n, int a, int m);??
??? void tell_s();??
private:??
??? int marks;??
};??
?
Student::Student(char *n, int a, int m):Member(n, a)??
{??
??? marks = m;??
??? cout<<"Student init:"< <
}??
?
void Student::tell_s()??
{??
??? Member::tell();??
??? cout<<"Marks:"< <
}??
?
class Teacher:public Member??
{??
public:??
??? Teacher(char *n, int a, int s);??
??? void tell_t();??
private:??
??? int salary;??
};??
?
Teacher::Teacher(char *n, int a, int s):Member(n, a)??
{??
??? salary = s;??
??? cout<<"Teacher init:"< <
}??
?
void Teacher::tell_t()??
{??
??? Member::tell();??
??? cout<<"Salary:"< <
}??
?
int main(void)??
{??
??? Student s("Tom", 20, 80);??
??? Teacher t("Mrs.Huang", 30, 50000);??
??????
??? s.tell_s();??
??? t.tell_t();??
?
??? return 0;??
}?

運行效果:

復制代碼 代碼如下:

[root@localhost hhl]# ./class???
Member init:Tom??
Student init:Tom??
Member init:Mrs.Huang??
Teacher init:Mrs.Huang??
Name:Tom,Age:20,Marks:80??
Name:Mrs.Huang,Age:30,Salary:50000?

這兩者的運行效果是一樣的,但是python更簡潔些。。。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 鸡东县| 武定县| 扬中市| 天等县| 芜湖县| 三穗县| 桑日县| 保德县| 吉水县| 油尖旺区| 福鼎市| 保康县| 舞阳县| 奉化市| 长子县| 本溪| 比如县| 西华县| 阜宁县| 区。| 旬阳县| 曲麻莱县| 德保县| 江城| 乐昌市| 北京市| 桃江县| 高雄县| 淮北市| 囊谦县| 保亭| 金山区| 尉氏县| 长武县| 霍州市| 改则县| 南涧| 象州县| 合江县| 华坪县| 桂林市|