-
導(dǎo)入模塊:
1、from 模塊名/包名 import *(所有內(nèi)容)/函數(shù)名(指定函數(shù)),如果是導(dǎo)入所有內(nèi)容,導(dǎo)入后可以直接調(diào)用該模塊內(nèi)的所有函數(shù)
eg.
#common.py def?say_hello(name): ????print('hello,'+name)
from?common?import?* say_hello('bob') #輸出:hello,bob
2、只用【import 模塊名】導(dǎo)入模塊,則調(diào)用所導(dǎo)入的模塊內(nèi)的函數(shù)時(shí),需要用【模塊名.函數(shù)名】調(diào)用
import?common common.say_hello('bob') #輸出:hello,bob
3、如果從一個(gè)模塊中導(dǎo)入的函數(shù)與文件中的函數(shù)名重名:
????????1>直接導(dǎo)入模塊,不指定函數(shù)名
??????? 2>from模塊名 import 函數(shù)名 as 新函數(shù)名?? 把導(dǎo)入的函數(shù)或者屬性重命名為
查看全部 -
(from 包 )import 模塊名?? (從某個(gè)包里)導(dǎo)入某個(gè)模塊?
包一般含有__init__.py文件的文件夾
print(模塊名.函數(shù)名)? 調(diào)用模塊里的函數(shù)
查看全部 -
class?Rational(object): ????def?__init__(self,p,q):?#分?jǐn)?shù)p/q ????????self.p?=?p ????????self.q?=?q ????#加法 ????def?__add__(self,?r): ????????return?Rational(self.p*r.q+self.q*r.p,self.q*r.q)??#分子:self.p*r.q+self.q*r(通分,讓兩個(gè)數(shù)的分母相等),分母:self.q*r.q ????#減法 ????def?__sub__(self,?r): ????????return?Rational(self.p*r.q-self.q*r.p,self.q*r.q) ????#乘法 ????def?__mul__(self,?r): ????????return?Rational(self.p*r.p,self.q*r.q)??#沒有約分 ????#除法 ????def?__truediv__(self,?r): ????????return?Rational(self.p*r.q,self.q*r.p) ????def?__str__(self): ????????return?'{}/{}'.format(self.p,self.q) r1?=?Rational(1,2) r2?=?Rational(2,3) print(r1?+?r2) print(r1?-?r2) print(r1?*?r2) print(r1?/?r2)
查看全部 -
1. python的__init__方法相當(dāng)于java的構(gòu)造方法,__變量相當(dāng)于java的private修飾的變量;
2. python的實(shí)例方法首個(gè)參數(shù)是self,表示當(dāng)前調(diào)用此方法的實(shí)例??赏ㄟ^此方法訪問私有變量;
3. python的類變量相當(dāng)于java的靜態(tài)變量;
查看全部 -
import math
def add(x, y, f):
? ?return f(x) + f(y)
print(add(25, 9, math.sqrt))查看全部 -
高階函數(shù):把函數(shù)作為變量
查看全部 -
type()獲得變量的類型
dir() 獲得變量的所有屬性,如果是某個(gè)類的實(shí)例變量,那么獲得的屬性會(huì)包括這個(gè)類里def的方法
getattr(變量名,變量的屬性名,默認(rèn)返回值)獲得這個(gè)變量的屬性的實(shí)際參數(shù),如果屬性不存在,且沒有設(shè)置默認(rèn)返回值,會(huì)報(bào)錯(cuò)
setattr(變量名,變量的屬性名,新的屬性參數(shù))設(shè)置新的參數(shù)
【**kw】,代表傳入可變關(guān)鍵字參數(shù),一個(gè)*代表的是傳入一個(gè)元組(tuple),而兩個(gè)*代表的是傳入一個(gè)字典(dict)
查看全部 -
判斷類型
isinstance(需要判斷的數(shù)據(jù)a,判斷是否是類型b)輸出True或者False
b可以是類,可以是int,str等Python自有數(shù)據(jù)類型
子類繼承父類,并可能添加了其他屬性信息,所以instance(子類,父類)是True,instance(父類,子類)是false。
eg:老師是子類,人是父類。
instance(子類,父類)→老師是人【正確】
instance(父類,子類)→人是老師【錯(cuò)誤】
查看全部 -
判斷類型
isinstance(需要判斷的數(shù)據(jù)a,判斷是否是類型b)輸出True或者False
b可以是類,可以是int,str等Python自有數(shù)據(jù)類型
子類繼承父類,并可能添加了其他屬性信息,所以instance(子類,父類)是True,instance(父類,子類)是false。
eg:老師是子類,人是父類。
instance(子類,父類)→老師是人【正確】
instance(父類,子類)→人是老師【錯(cuò)誤】
查看全部 -
1、class Student()定義的時(shí)候,需要在括號(hào)內(nèi)寫明繼承的類Person
2、在__init__()方法,需要調(diào)用super(子類名, self).__init__(父類屬性1, 父類屬性2,...),來初始化從父類繼承過來的屬性
super()中是逗號(hào),后邊是【? .__init__】
查看全部 -
class?a(): ????def?__init__(self?,?j?,?k):?#初始化a類的jk屬性 ????????self.j?=? ????????self,k?=? ?? ?class?b(a):??#a是父類,b是a的子類,b要繼承a,需要在定義的時(shí)候在()中填寫要繼承的類名 ?????def?__init__(self,?j?,?k?,?l):?#初始化b類的屬性,需要包括a類的屬性 ?????????super(b,self).__init__(j?,?k?)#在__init__()方法,需要調(diào)用super(Student,?self).__init__(name,?gender),來初始化從父類繼承過來的屬性 ?????????self.l?=
查看全部 -
class?Animal(object): ????__localtion?=?'Asia'? ????__count?=?0??#類的私有屬性 ????def?__init__(self,?name,?age): ????????self.name?=?name ????????self.age?=?age ????????Animal.__count?+=?1??#__count是類的,所以要帶上類名 ????@classmethod????#私有屬性調(diào)用需要使用classmethod定義類方法 ????def?get_count(cls): ????????return?cls.__count ???????? ?????@classmethod ????def?set_localtion(cls,?localtion):??#調(diào)用類方法,給localtion賦值,()第一個(gè)是cls,第二個(gè)是參數(shù) ????????cls.__localtion?=?localtion ????@classmethod ????def?get_localtion(cls):??#獲取賦值后的localtion ????????return?cls.__localtion dog?=?Animal('wangwang',?1) cat?=?Animal('mimi',?3) pig?=?Animal('panpan',?1) count?=?Animal.get_count() print(count)?#結(jié)果是3 Animal.set_localtion('gz')??#給Animal的__localtion賦值,賦值時(shí)直接調(diào)用,不需要再加其他名字和等號(hào),實(shí)例化才需要名字和等號(hào) print(Animal.get_localtion())??打印
查看全部 -
class 類名():
def __init__(self, 屬性1,屬性2,...)#init是初始化
self.屬性
self.屬性
def 方法名():
方法函數(shù)
實(shí)例化:
實(shí)例名 = 類名.(屬性1,屬性2,...)
調(diào)用:
實(shí)例名.方法名()
查看全部 -
如果類和實(shí)例存在同名屬性,則該屬性實(shí)例的優(yōu)先級(jí)高于類。
不能通過實(shí)例修改類的固定屬性
查看全部 -
class Animal(object):
? ?def __init__(self, name, age, localtion):
? ? ? ?self.__name = name? #帶雙__是私有屬性,可以通過內(nèi)部定義def方法訪問
? ? ? ?self.__age = age
? ? ? ?self.__localtion = localtion
? ?def set_name(self, name):#設(shè)置私有屬性,通過這個(gè)設(shè)置,可以單獨(dú)調(diào)用set_name方法對(duì)實(shí)例的name屬性進(jìn)行修改,不需要調(diào)用完整的實(shí)例
? ? ? ?self.__name = name
? ?def get_name(self):? #訪問私有屬性
? ? ? ?return self.__name
? ?def set_age(self, age):
? ? ? ?self.__age = age
? ?def get_age(self):
? ? ? ?return self.__age
? ?def set_localtion(self, localtion):
? ? ? ?self.__localtion =localtion
? ?def get_localtion(self):
? ? ? ?return self.__localtion查看全部 -
filter()函數(shù)是 Python 內(nèi)置的另一個(gè)有用的高階函數(shù),filter()函數(shù)接收一個(gè)函數(shù) f 和一個(gè)list,這個(gè)函數(shù) f 的作用是對(duì)每個(gè)元素進(jìn)行判斷,返回 True或 False,filter()根據(jù)判斷結(jié)果自動(dòng)過濾掉不符合條件的元素,并返回一個(gè)迭代器,可以迭代出所有符合條件的元素。
查看全部 -
map()是 Python 內(nèi)置的高階函數(shù),它接收一個(gè)函數(shù) f?和一個(gè) list,并通過把函數(shù) f依次作用在list的每個(gè)元素上,map()函數(shù)會(huì)返回一個(gè)迭代器,可以依次迭代得到原來list的元素被函數(shù)f處理后的結(jié)果。
reduce()函數(shù)接收的參數(shù)和 map() 類似,一個(gè)函數(shù) f,一個(gè)list,但行為和 map()不同,reduce()傳入的函數(shù) f 必須接收兩個(gè)參數(shù),reduce()對(duì)list的每個(gè)元素反復(fù)調(diào)用函數(shù)f,并返回最終結(jié)果值。
查看全部
舉報(bào)