乙個程式模組太多,需要建立乙個資料夾來管理這些模組,就有了包的概念。
什麼是包?可以將多個具有相似或者有關聯的多個模組放在乙個資料夾中,便於統一管理。這個資料夾我們就可以稱之為包
'我的test2模組'
test1.py:
y=
'我的test1模組'
test.py:
from test2 import x
import test1
print
(x)#我的test2模組
print
(test1.y)
#我的test1模組
定義類:類名如何定義?使用class來定義乙個類
類名一般都要遵守大駝峰命名法,每乙個單詞的首字母都要大寫
1)class 類名:
2)class 類名 (object):
class
student
(object):
def__init__
(self,name,age,score)
: self.name=name
self.age=age
self.score=score
defscore1
(self)
:print
("{}今年{}歲,他的c語言成績為{}分"
.format
(self.name,self.age,self.score)
)s1=student(
"小明",19
,90)s2=student(
'肖銘',20
,78)s1.score1(
)s2.score1(
)# 小明今年19歲,他的c語言成績為90分
# 肖銘今年20歲,他的c語言成績為78分
這個屬性直接定義在類裡,是乙個元組,用來規定物件可以存在的屬性
class
student
(object):
__slots__ =
('name'
,'age'
,'score'
,'city'
)def
__init__
(self,name,age,score)
: self.name=name
self.age=age
self.score=score
defscore1
(self)
:print
("{}今年{}歲,他的c語言成績為{}分"
.format
(self.name,self.age,self.score)
)student.city=
'北京'
print
(student.city)
s1=student(
"小明",19
,90)s1.score1(
)# 北京
# 小明今年19歲,他的c語言成績為90分
魔法方法,也叫魔術方法,是類裡的特殊的一些方法
特點:1)不需要手動呼叫,會在合適的時間自動呼叫。
2)這些方法,都是使用__開始,使用__結束
3)方法名都是系統自動規定好的,在合適的時機自己呼叫
(1)init:在建立物件的時候會自動呼叫這個方法
(2)del:當物件被銷毀時,會自動呼叫這個方法
import time
class
person
(object):
#在建立物件的時候會自動呼叫這個方法
def__init__
(self,name,age)
:print
('__init__這個方法被呼叫了'
) self.name=name
self.age=age
#當物件被銷毀時,會自動呼叫這個方法
def__del__
(self)
:print
('__del__這個方法被呼叫了'
)s1=person(
'張三',20
)#__init__這個方法被呼叫了
time.sleep(3)
# 等待3秒之後,會自動銷毀
# __del__這個方法被呼叫了
s1=person(
'張三',20
)#__init__這個方法被呼叫了
print
(s1)
#如果不做任何修改,直接列印乙個物件,是物件的型別和記憶體位址
(3)str__或__repr_方法:當列印乙個物件時,會呼叫這個物件的__str__或__repr__方法。如果兩個方法都寫了,就只選擇__str__
def
__repr__
(self)
:return
'hello'
def__str__
(self)
:return
'world'
s1 = person(
'張三',20
)# __init__這個方法被呼叫了
print
(s1)
#world
#如果想要自己調__repr__方法,可以print(repr(s1))
4)物件名()==>會自動呼叫__call__方法
def
__call__
(self,
*args,
**kwargs)
:print
('__call__方法被呼叫了'
)s1 = person(
'張三',20
)s1(
)#__call__方法被呼叫了
s1(1,2
)#會自動呼叫s1.__call__(1,2)方法
5)==會呼叫物件的__eq__方法
class
person
(object):
# 在建立物件的時候會自動呼叫這個方法
def__init__
(self, name, age)
: self.name = name
self.age = age
def__eq__
(self, other)
:print
("__eq__方法被呼叫了"
)s1 = person(
'張三',20
)s2 = person(
'張三',20
)#is 比較兩個物件的記憶體位址
#== 會呼叫物件的__eq__方法,獲取這個方法的比較結果
print
(s1 is s2)
#false
print
(s1 == s2)
#false,__eq__方法被呼叫了
m1=[1,
2,3]
m2=[1,
2,3]
print
(m1 is m2)
#false
print
(m1 == m2)
#true
def
__eq__
(self, other)
:if self.name==other.name:
return
true
return
false
s1 = person(
'張三',20
)s2 = person(
'張三',20
)print
(s1 == s2)
#true
C程式設計基礎day08
return 函式在主函式中return結束程式。在其他函式中return結束該函式,但程式仍執行。exit 在任何函式中執行都會結束程式,也就是結束程序。如果函式不是寫在main函式前邊,那麼需要在函式被呼叫的前邊某個地方宣告。乙個函式可以宣告多次,但只能定義一次,宣告的變數名稱和定義的變數名稱可...
python成長之路day08
一 集合關係運算與常用操作 二 檔案操作 關係運算 friends1 friends2 1 取二者的共同好友 交集 res friends1 friends2 print res 2 取二者所有的好友有哪些 並集 res friends1 friends2 print res 3 去二者所有的好友有...
Python課程回顧(day08)
什麼是檔案 檔案是作業系統提供給使用者 應用程式的一種虛擬單位,這種單位可以直接對映硬碟空間 為什麼要使用檔案 由於使用者無法直接操作硬體,所以使用者或應用程式直接操作檔案 讀 寫 就會被作業系統轉換成具體的硬碟操作,從而實現使用者或應用程式將資料永久的儲存在硬碟中 如何使用檔案 檔案處理的三個步驟...