-
有必要注意的是,返回函数和返回函数值的语句是非常类似的,
返回函数时,不能带小括号,
返回函数值时,则需要带上小括号以调用函数。
查看全部 -
追加内容:
a打开文件并在末尾追加内容
ab以二进制格式打开文件在末尾追加内容
a+打开文件并使用追加进行读写
追加内容后,游标是在内容末尾,此时使用readlines(),会返回空列表
文件名.seek()
移动文件的游标位置,它接受一个参数,表示文件的位置,
0:文件首部,
1:当前位置,
2:文件尾部
通过seek()可以把文件游标移动到文件首部但不删除文件的内容
查看全部 -
# Enter a code
#coding:utf-8
#funA 作为装饰器函数
def funA(fn):
print("C语言中文网")
fn() # 执行传入的fn参数
print("http://c.biancheng.net")
return "装饰器函数的返回值"
@funA
def funB():
print("学习 Python")
print(funB)
#执行如上代码输出:
# C语言中文网
# 学习 Python
# http://c.biancheng.net
# 装饰器函数的返回值
查看全部 -
Python语言本身提供了非常多的模块,比如数学模块math、cmath、decimal、statistics;文件模块pathlib、stat、shutil等;除了使用官方模块,有时候也需要自定义模块。
任务:
# 定义一个公共模块common.py,在common.py中,包含公共函数say_hello(name),它接受一个参数,输出:Hello 的结果。
# coding=utf-8 # common.py def say_hello(name): tamplate = 'Hello, {n}' res = tamplate.format(n = name) print(res) say_hello('绿花')
查看全部 -
在函数内部定义的函数无法被外部访问。
内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
因此,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
查看全部 -
字符串反转可以使用切片实现: reverse = str_[::-1]。
f = open('test.txt', 'r')
lines = f.readlines()
f1 = open('test1.txt', 'w')
for line in lines:
line = line[::-1]
f1.write(line)
f1.close()
f.close()
查看全部 -
write向文件内写入若干字符,它接受一个字符串参数,表示需要写入的字符串。
f = open('test.txt', 'w')
f.write('Hello World\n')
f.close()writelines向文件内容写入多行数据,它接受一个列表,表示需要写入的字符串列表。
lines = ['Hello World\n', 'Hello Python\n', 'Hello Imooc\n']
f = open('test.txt', 'w')
f.writelines(lines)
f.close()
查看全部 -
面向对象编程:
程序设计的范式;
抽象并建立对象模型;
程序视不同对象相互调用的逻辑。
概念:
类,抽象出来的每一个对象;
实例,类的模型;
实例化,从类到实例的过程;
属性,属于某一个类的属性。
查看全部 -
一行搞定:
print([item for item in filter(lambda x:int(math.sqrt(x)) * int(math.sqrt(x))== x, [i for i in range(1,100)])])
查看全部 -
Python类的定义与实例化 在Python中,通过class关键字定义一个类,比如我们需要定义一个人的类。按照 Python 的编程习惯,类名以大写字母开头。因此可以这样定义: class Person: pass 注意,在这个Person类的定义里面,并没有继承任何类,除了这样定义以外,还可以有以下两种定义方式。 class Person(): pass class Person(object): pass 这三种情况有什么区别呢?在Python3中,是没有区别的,但是在Python2中,则有一定的区别。 在Python2中,对于第一种定义的方法,Person类只有有限的几个内建函数'__doc__', '__module__', 'name',而对于第二种、第三种定义的方法,则会继承Python object对象的更多的内建函数,可以更便捷的操作对象。这是Python2版本的差异。在Python3中,我们只需要知道这三种方式都可以定义一个类即可。 定义了类之后,就可以对类进行实例化了,实例化是指,把抽象的类,赋予实物的过程。比如,定义好Person这个类后,就可以实例化多个Person出来了。 创建实例使用类名+(),类似函数调用的形式创建: class Person(object): pass xiaohong = Person() xiaoming = Person() 任务 请练习定义一个动物类,并创建出两个实例dog, cat,打印实例,再比较两个实例是否相等。 index.py # Enter a code 本节编程练习不计算学习进度,请电脑登录imooc.com操作查看全部
-
为了操作实例对象的私有属性,我们定义了实例方法;同样的,如果需要需要操作类的私有属性,则应该定义类的方法。
默认的,在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。
要在class中定义类方法,需要这么写:class Animal(object): __localtion = 'Asia' def __init__(self, name, age): self.name = name self.age = age @classmethod def set_localtion(cls, localtion): cls.__localtion = localtion @classmethod def get_localtion(cls): return cls.__localtion print(Animal.get_localtion()) # ==> Asia Animal.set_localtion('Afica') print(Animal.get_localtion()) # ==> Africa
和实例方法不同的是,这里有两点需要特别注意:
类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法
类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
查看全部 -
class Animal(object):
pass
dog = Animal()
cat = Animal()
dog.name = 'wangwangwang'
dog.age = 3
dog.sex = 'boy'
cat.name = 'miaomiao'
cat.age = 4
cat.sex = 'girl'
print(dog.name)
print(dog.age)
print(cat.age)
print(cat.name)
查看全部 -
# Enter a code
class Dongwu:
pass
dog=Dongwu()
cat=Dongwu()
print(dog)
print(cat)
print(dog==cat)
查看全部 -
Python闭包部分,后面的代码,输出确实是1、4、9呀!有人和我一样的吗?查看全部
-
改了之后就无法通过类去访问了,只能通过实例去访问。
查看全部
举报