-
input()函数可以接收外部的输入。
输入的是字符串类型。
num = input('please input number: ')
num = int(num)
result = 1
for i in range(1, num):
result = result * i
print(result)
查看全部 -
Python环境提供了安装第三方模块的工具:pip
安装Django模块:
pip install django
卸载Django模块:
pip uninstall django
查看全部 -
通过sys模块,可以知道导入模块的路径。
>>> import sys
>>> sys.path
['', '/data/miniconda3/lib/python3.8', '/data/miniconda3/lib/python3.8/site-packages']
它返回的是一个列表,表示的是在搜索Python模块时,会搜索的路径,在示例中,返回了四个路径。我们分析一些关键路径:
第一个路径是'',它是一个空字符串,表达的是当前路径的意思。
第二个路径是/data/miniconda3/lib/python3.8,它是Python默认模块的存放的路径,在这个路径下,可以发现有os、sys等模块的代码。
第三个路径是/data/miniconda3/lib/python3.8/site-packages,它是第三方模块代码的存放路径,在这个路径下,存放的是需要安装的第三方模块。使用定义的tools.py模块:在tools.py同级目录,创建main.py文件
# main.py
import tools # 导入模块
tools.say_hello() # 调用模块里面的say_hello()函数
tools.say_goodbye() # 调用模块里面的say_goodbye()函数
查看全部 -
导入官方模块,不需要考虑路径的问题
import math
from math import pi
from math import *
from math import pow as mathpow
查看全部 -
如果把一个类实例也变成一个可调用对象,可以实现一个特殊的方法__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') # ==> 用函数的方式调用Person类的实例p
My name is Bob...
My friend is Alice...
查看全部 -
使用__slots__ = ('name', 'gender', 'score') 限定Student类的属性,这个时候在外部再次添加动态属性age,将会报错。
__slots__的目的是限制当前类所能拥有的属性,避免因为外部属性的操作导致类属性越来越难以管理。
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在运算中,普通除法使用/表示,而地板除使用//表示。地板除的特殊方法是__floordiv__,普通除法是__truediv__。
查看全部 -
tools.py 工具功能
common.py 公共函
thirdparty.py 第三方相关引入的代码
查看全部 -
先在实例中实现__call__()方法
然后实例就可以使用,实例名完成函数的调用方式 传参
查看全部 -
定义的形式
def __add__(self, r):
return Rational(self.p * r.q + self.q * r.p, self.q * r.q)
调用的形式
test+test2
或者print(test.__add__(test2))
查看全部 -
在运算中,普通除法使用/表示,而地板除使用//表示
Python的除法可以分为地板除(你没看错,就是地板)和普通除法,地板除的特殊方法是__floordiv__,普通除法是__truediv__。
查看全部 -
实现内建函数之后,可以使用实例.__函数名__()的港式使用
或者用函数名(实例名)
比如: __str__() 实现之后 可以在类外面 str(实例名)这样使用
查看全部 -
想使用len()函数来获取元素个数时,则需要实现__len__()方法。
使用str()函数来获取字符串的形式 需要实现__str__()方法
使用repr()函数来获取字符串的形式 需要实现__repr__()方法
查看全部 -
@classmethod 只能使用类名调用,无法获得实例,只能获得类的引用
查看全部 -
为了操作实例对象的私有属性,我们定义了实例方法;同样的,如果需要需要操作类的私有属性,则应该定义类的方法。
__age 作为类的私有属性,应该使用类方法来处理和修改类私有属性
类方法:用@classmethod 来标识类方法
类方法的使用:第一个参数传入类本身,命名为cls 使用类私有属性时:cls.__age
(实例的私有属性或者__init__的第一个参数都是self)
查看全部
举报