1.模块和包
import mypy02
print(mypy02.add1(1,2))
#sys Python标准库模块,和python解释器相关
import sys,os.path as op #同时导入多个模块
for line in sys.path:
print(line)
print(os.path.exists('d:/aaa.txt'))
print(op.exists('d:/aaa.txt'))
from os.path import exists #从os.path导入exists
print(exists('d:/aaa.txt'))
#locals()查看作用域下局部变量
print(globals())#查看当前作用于下全局变量
#_name_当前模块的名字
def add(x,y):
return x+y
if _name_ =='_main_':
print(add(1,2))
2.面向对象
#封装:让调用者不必知道实现者实现类的细节,只要知道类怎么用就行
#创建类
class Test:
"""
测试类
"""
pass
#创建对象
t=Test()
#属性
# 成员函数
class Test2:
#静态属性(类属性)
x=10
"""
方法
"""
def _init_(self,num):#(相当于构造函数)
"""
通常把一个类的属性写在_init_()中
"""
self.x = num;
def Print(self):
#实例属性必须在实例方法中
print('hehe',self.x)
#静态方法
@staticmethod
def StaticPrint():
print("hehe")
StaticPrint=staticmethod( StaticPrint)
#也可用装饰器
@staticmethod
def StaticPrint():
print("hehe")
#静态方法无法访问静态属性
#可通过该类方法进行调用
@classmethod
def ClassPrint(self):
print("hehe",cls.val)
#创建对象
t1=Test2(10)
t1.Print()
#静态属性直接写类中,通过类调用
#属性的访问权限
class Student:
pass
#组合
class Test3:
def __init__(self):#私有方法用双下划线
self.x=10
self.student=[Student(),Student()]
class cat: #继承
def init(self):
self.name=""
self.type="猫"
def Speak(self):
print("喵")
class AShortCat(cat): #继承类子类出现的和父类同名函数,就会相互覆盖
def _init_(self):
print("miao")
cat=AShortCat()
cat.type
#多态
#python中的多态与继承没有直接关系
#多态本质是封装的更进一步
#封装指的是调用者不必知道使用类的内部细节
def add(x,y):
return x+y;
print(add(10,20))
print("hello","world")
print(add([10,20,30],[40,50,60]))
class Test:
val=10
print(getattr(Test,'val'))#获取
print(delattr(Test,'val'))#删除
print(setattr(Test,'val'))#设置
print(dir(Test))#获取类中属性
class Time(object):
def __init__(self, h, m):
self.hour = h
self.minute = m
def __str__(self):
return '[%02d:%02d]' % (self.hour, self.minute) #格式化字符串
def __len__(self):
print(len(self))
t = Time(13, 5)
print(t)