1,哪一个对象调用,self就代表哪一个对象。
2,全局变量在所有代码都被执行完后才会回收清除,所以__del__才会使用。
3,——init——创建对象自动调用
——del——对象结束自动调用
——str——print对象时调用
4,变量暂时没东西可以赋值为none.
5,==判断的是值相等,is 是判断地址是否相等。
6,Dog.方法(括号里得有self),super().方法(不需要self).
7,__mro__内置属性(方法搜索顺序),多继承优先级
8,init里面是实例属性,
9,实例方法,方法内部需要访问实例属性,要加self,内部可以使用类名,访问类属性。
10,类方法,方法内部只需访问类属性,加cls,加修饰符@classmethod
11,静态方法,方法内部不需要访问实例属性和雷属性,括号里什么都不加,加修饰符 @staticmethod
12,单例就是内存分配一个,始终。初始化只一次,始终
13,本类调用本类类方法,括号内不用加cls
14,类方法那实例属性拿不到,要拿得把实例属性传进去才能调用。
15,静态方法和类方法调用不要需要创建实例化对象。静态对象第一个参数没有特殊意思,可直接传参数
16,类里面定义使的三种方法都存在类的内存中。
17,__new__是一个静态方法,因为调用它之前,类还没有,没有装饰器,还要传CLS的奇葩。
18,try/except:执行try错的话执行except和后面的函数
19,如果希望无论出现什么错误程序都能顺利执行的话,使用捕获未知错误
except Exception as result:
print('未知错误%s'%result)
这样自动捕获的错误就可以自动显示出来。
20,except Exception as result的as result 和底下的result输出可以没有
21,import 模块名 as 别名
22,form模块import工具名。使用不需要指定模块名。
23——————
file = open('redme')
t = file.read()
print(t)
print('-'*30) #read方法执行后指针移到末尾,无法再次读取,分割线后就没有输出
t = file.read()
print(t)
file.close()
————————
24,w,清空写,
a,追加写,
r,只读
补充-----:
25,别名类名大驼峰
26,函数名小驼峰,下划线
27,导入模块用同名的对象,用后导入的,可用别名区分。
28,导入模块先搜索当前目录在搜索隐藏目录,random重命名不可用。
29,增加条件判断__name__ = '__main__',在其他导入的模块中就不会执行这个模块里面的函数
--------------------------------
def main():
执行体
if __name__ == '__main__'
main()
以后都是这种格式啦
---------------------------------
30,list('hello')
>>>[h,e,l,l,o]
31,判断是不是字母数字用isalpha或者isnumerical等,别用字母列表,
32,创建类别忘了继承Object
33,sort没有返回值
34,# c = [[1,2],[3,4],[5,6]]
# for j in c:
# if j[1] < 18:
# c.remove(j)
# print(c)
# print(c)
上面代码错误,得用反面append()出来
注意,但凡把遍历列表信息打乱的操作都是不可取的,只能取出给其他。
35,字符串反过来是用切片,列表反过来是用sort等方法
|
|