python学习日记(OOP访问限制)】的更多相关文章

__str__和__repr__ 改变对象的字符串显示__str__,__repr__ 我们先定义一个Student类,打印一个实例: class Student(object): def __init__(self,name): self.name = name print(Student('libai')) 打印出一堆<__main__.Student object at 0x000002311102EE10>,不好看. 怎么才能打印得好看呢?只需要定义好__str__()方法,返回一个好…
知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别.在安装的的时候需要注意.剩下的就是在官网选择适合自己操作系统版本的Python安装即可 2Python的内容编码 接下来就有关Python的内容编码的问题 .Python2.x默认是acsll编码.因此不支持中文.Python 3 则不存在这个问题 因此在Python2.x环境中需要在代码的开始加…
Python学习日记 --day2 1.格式化输出:% s d  (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄')) height = input('请输入身高') job = input('请输入工作') hobbie = input('我的爱好是') msg = '''-------info of %s -------- 姓名: %s 年龄: %d 身高: %s 工作: %s 爱好: %s ------…
数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print(s) 布尔值 bool  True/False while True: 等价于: while 1:   ###较简便 while 1: print('all trule') 字符串 str 字符串的索引与切片 索引:索引既下标,字符串元素从第一个开始,初始索引为0.以此类推. s = 'sdfjs…
近日学习Python,特将学习过程及一点心得记录于此. 由于之前做过一个Java爬虫的项目,虽然很长时间没有碰过爬虫,但是小郭同学有一颗不死的爬虫心,哈哈.最近在互联网上找一些电影的时候,有很多电影只提供在线观看,没有下载的链接,突然有了一种要把它爬下来的冲动.虽然用Java做爬虫有很多现成的框架像Lucene.crawler4j.Nutch.ElasticSearch等一些技术成熟的框架供你去研究.但是python写起爬虫来好像更加的方便快捷,至此就有了学习python的冲动,特此开篇,记录我…
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name.score属性: class Student(object): def __init__(self,name,score): self.name = name self.score = score liang = Student('LiangMeng',46) liang.score = 88…
class Student(object): def __init__(self,name,score): self.name = name self.score = score li = Student(') print(li.name) print(li.score) 面向对象编程的一个重要特点就是数据封装.在上面的Student类中,每个实例就拥有各自的name和score这些数据.我们可以通过函数来访问这些数据,比如打印一个学生的成绩: def print_score(student):…
在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻辑.为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数: class Student(object): def __init__(self,score): self.__score = score de…
classmethod 类方法在Python中使用比较少,类方法传入的第一个参数为cls,是类本身.并且,类方法可以通过类直接调用,或通过实例直接调用.但无论哪种调用方式,最左侧传入的参数一定是类本身. 通常情况下,类方法使用@classmethod装饰器来声明 当这个方法的操作只涉及静态属性的时候 就应该使用@classmethod来装饰这个方法 class Goods(object): __discount = 0.8#自定义商品折扣 def __init__(self,name,price…
反射 反射就是通过字符串的形式,导入模块:通过字符串的形式,去模块寻找指定函数,并执行.利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动! hasattr 判断对象中是否有这个方法或变量 class Person(object): def __init__(self,name): self.name = name def walk(self): print('{} is walking'.format(self.name)) li = Person('…