日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python学习之路-第七天-python面向对象编程简介

發布時間:2024/1/17 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python学习之路-第七天-python面向对象编程简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象編程

在python中,同樣是類和對象作為重要的組成部分。

而且在python中基本數據類型如int都是有封裝類的,都有自己的方法,應該是和java里面的Integer類似吧

類包括域和方法:域也就是類或對象中的變量,方法就是類里面聲明的函數

self關鍵字:

相當于java中的this,下面是個例子:

#!/usr/bin/python # Filename: method.pyclass Person:def sayHi(self):print 'Hello, how are you?'p = Person() p.sayHi()# This short example can also be written as Person().sayHi()

你一定很奇怪Python如何給self賦值以及為何你不需要給它賦值。舉一個例子會使此變得清晰。假如你有一個類稱為MyClass和這個類的一個實例MyObject。當你調用這個對象的方法MyObject.method(arg1, arg2)的時候,這會由Python自動轉為MyClass.method(MyObject, arg1, arg2)——這就是self的原理了。這也意味著如果你有一個不需要參數的方法,你還是得給這個方法定義一個self參數。

init方法的使用和說明(相當于構造函數):

用來在類被實例化后馬上就被運行的一段程序,用來作為對象的初始化操作

#!/usr/bin/python # Filename: class_init.pyclass Person:def __init__(self, name):self.name = namedef sayHi(self):print 'Hello, my name is', self.namep = Person('qjx') p.sayHi()# This short example can also be written as Person('qjx').sayHi() $ python class_init.py Hello, my name is qjx

del方法的使用和說明(相當于析構函數):

他是用在對象被釋放后運行的一段程序,用來釋放資源等操作,一般在程序消逝后自動進行,如果要手動釋放,就要顯示的調用del語句

一般的,對于變量和方法的作用域

  • __privatevar(兩個下劃線前綴)python會把它作為私有變量

  • 還有一個慣例,也就是平常人們的命名習慣,如果某個變量只想在類或對象中使用,就應該以單下劃線前綴。

  • 其他的名稱都將作為公共的,可以被其他類/對象使用

繼承(SchoolMember類被稱為 基本類 或 超類 。而Teacher和Student類被稱為 導出類 或 子類 )

#!/usr/bin/python # Filename: inherit.pyclass SchoolMember:'''Represents any school member.'''def __init__(self, name, age):self.name = nameself.age = ageprint '(Initialized SchoolMember: %s)' % self.namedef tell(self):'''Tell my details.'''print 'Name:"%s" Age:"%s"' % (self.name, self.age),class Teacher(SchoolMember):'''Represents a teacher.'''def __init__(self, name, age, salary):SchoolMember.__init__(self, name, age)self.salary = salaryprint '(Initialized Teacher: %s)' % self.namedef tell(self):SchoolMember.tell(self)print 'Salary: "%d"' % self.salaryclass Student(SchoolMember):'''Represents a student.'''def __init__(self, name, age, marks):SchoolMember.__init__(self, name, age)self.marks = marksprint '(Initialized Student: %s)' % self.namedef tell(self):SchoolMember.tell(self)print 'Marks: "%d"' % self.markst = Teacher('Mrs. Shrividya', 40, 30000) s = Student('Swaroop', 22, 75)print # prints a blank linemembers = [t, s] for member in members:member.tell() # works for both Teachers and Students $ python inherit.py (Initialized SchoolMember: Mrs. Shrividya) (Initialized Teacher: Mrs. Shrividya) (Initialized SchoolMember: Swaroop) (Initialized Student: Swaroop)Name:"Mrs. Shrividya" Age:"40" Salary: "30000" Name:"Swaroop" Age:"22" Marks: "75"

Python在子類中不會自動調用基本類的constructor,你得親自專門調用它。

Python中可以多重繼承

轉載于:https://www.cnblogs.com/qjx-2016/p/7922246.html

總結

以上是生活随笔為你收集整理的python学习之路-第七天-python面向对象编程简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。