-
input()函數(shù)可以接收外部的輸入。
輸入的是字符串類型。
num = input('please input number: ')
num = int(num)
result = 1
for i in range(1, num):
? ? ? ?? result = result * i
print(result)
查看全部 -
Python環(huán)境提供了安裝第三方模塊的工具:pip
安裝Django模塊:
pip install django
卸載Django模塊:
pip uninstall django
查看全部 -
通過(guò)sys模塊,可以知道導(dǎo)入模塊的路徑。
>>> import sys
>>> sys.path
['', '/data/miniconda3/lib/python3.8', '/data/miniconda3/lib/python3.8/site-packages']
它返回的是一個(gè)列表,表示的是在搜索Python模塊時(shí),會(huì)搜索的路徑,在示例中,返回了四個(gè)路徑。我們分析一些關(guān)鍵路徑:
第一個(gè)路徑是'',它是一個(gè)空字符串,表達(dá)的是當(dāng)前路徑的意思。
第二個(gè)路徑是/data/miniconda3/lib/python3.8,它是Python默認(rèn)模塊的存放的路徑,在這個(gè)路徑下,可以發(fā)現(xiàn)有os、sys等模塊的代碼。
第三個(gè)路徑是/data/miniconda3/lib/python3.8/site-packages,它是第三方模塊代碼的存放路徑,在這個(gè)路徑下,存放的是需要安裝的第三方模塊。使用定義的tools.py模塊:在tools.py同級(jí)目錄,創(chuàng)建main.py文件
# main.py
import tools # 導(dǎo)入模塊
tools.say_hello() # 調(diào)用模塊里面的say_hello()函數(shù)
tools.say_goodbye() # 調(diào)用模塊里面的say_goodbye()函數(shù)
查看全部 -
導(dǎo)入官方模塊,不需要考慮路徑的問(wèn)題
import math
from math import pi
from math import *
from math import pow as mathpow
查看全部 -
如果把一個(gè)類實(shí)例也變成一個(gè)可調(diào)用對(duì)象,可以實(shí)現(xiàn)一個(gè)特殊的方法__call__()。
class Person(object):
? ?def __init__(self, name, gender):
? ? ? ?self.name = name
? ? ? ?self.gender = gender
? ?def __call__(self, friend):
? ? ? ?print('My name is {}...'.format(self.name))
? ? ? ?print('My friend is {}...'.format(friend))
>>> p = Person('Bob', 'Male')
>>> p('Alice') # ==> 用函數(shù)的方式調(diào)用Person類的實(shí)例p
My name is Bob...
My friend is Alice...
查看全部 -
使用__slots__ = ('name', 'gender', 'score') 限定Student類的屬性,這個(gè)時(shí)候在外部再次添加動(dòng)態(tài)屬性age,將會(huì)報(bào)錯(cuò)。
__slots__的目的是限制當(dāng)前類所能擁有的屬性,避免因?yàn)橥獠繉傩缘牟僮鲗?dǎo)致類屬性越來(lái)越難以管理。
class Student(Person):
? ?__slots__ = ('score',)
? ?def __init__(self, name, gender, score):
? ? ? ?self.name = name
? ? ? ?self.gender = gender
? ? ? ?self.score = score
查看全部 -
class Rational(object):
? ?def __init__(self, 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)
? ?def __str__(self):
? ? ? ?return '{}/{}'.format(self.p, self.q)>>> r1 = Rational(1, 2)
>>> r2 = Rational(2, 3)
>>> print(r1 + r2)
7/6在運(yùn)算中,普通除法使用/表示,而地板除使用//表示。地板除的特殊方法是__floordiv__,普通除法是__truediv__。
查看全部 -
tools.py 工具功能
common.py 公共函
thirdparty.py 第三方相關(guān)引入的代碼
查看全部 -
先在實(shí)例中實(shí)現(xiàn)__call__()方法
然后實(shí)例就可以使用,實(shí)例名完成函數(shù)的調(diào)用方式 傳參?
查看全部 -
定義的形式
?def __add__(self, r):
? ? ? ? return Rational(self.p * r.q + self.q * r.p, self.q * r.q)
調(diào)用的形式
test+test2
或者print(test.__add__(test2))
查看全部 -
在運(yùn)算中,普通除法使用/表示,而地板除使用//表示
Python的除法可以分為地板除(你沒(méi)看錯(cuò),就是地板)和普通除法,地板除的特殊方法是__floordiv__,普通除法是__truediv__。
查看全部 -
實(shí)現(xiàn)內(nèi)建函數(shù)之后,可以使用實(shí)例.__函數(shù)名__()的港式使用
或者用函數(shù)名(實(shí)例名)
比如: __str__() 實(shí)現(xiàn)之后 可以在類外面 str(實(shí)例名)這樣使用
查看全部 -
想使用len()函數(shù)來(lái)獲取元素個(gè)數(shù)時(shí),則需要實(shí)現(xiàn)__len__()方法。
使用str()函數(shù)來(lái)獲取字符串的形式 需要實(shí)現(xiàn)__str__()方法
使用repr()函數(shù)來(lái)獲取字符串的形式 需要實(shí)現(xiàn)__repr__()方法
查看全部 -
@classmethod 只能使用類名調(diào)用,無(wú)法獲得實(shí)例,只能獲得類的引用
查看全部 -
為了操作實(shí)例對(duì)象的私有屬性,我們定義了實(shí)例方法;同樣的,如果需要需要操作類的私有屬性,則應(yīng)該定義類的方法。
__age 作為類的私有屬性,應(yīng)該使用類方法來(lái)處理和修改類私有屬性
類方法:用@classmethod 來(lái)標(biāo)識(shí)類方法
類方法的使用:第一個(gè)參數(shù)傳入類本身,命名為cls 使用類私有屬性時(shí):cls.__age
(實(shí)例的私有屬性或者_(dá)_init__的第一個(gè)參數(shù)都是self)
查看全部
舉報(bào)