介绍
学习记录。。。。
目录:
- 面向对象高级语法部分
- 字段
- 方法
- 属性
经典类 新式类类的特殊成员反射
类
- 字段
-
- 普通字段
- 静态字段
- 方法
-
- 普通方法
- 类方法
- 静态方法
- 属性
-
- 普通属性
- 私有属性
字段
普通字段 属于对象, 实例变量,存在每个实例里面,进行实例的时候,开辟一个实例对象,
静态字段 属于类,类变量, 内存中存在类里面,没实例化,也存在。
方法
class Animal: def __init__(self,name): self.name=name hobbie = ‘meat‘ @classmethod ##类方法,不能访问实例变量 def talk(self): print("{} is talking".format(self.hobbie)) @staticmethod ##静态方法,不能访问类变量 和实例变量,大多情况不用,类的工具箱 def walk(): print(" is talking") @property ##属性,下面就不是方法了,变成了一个属性,但是依然可以访问实例和类变量 def habit(self): print("{} habit is xxoo".format(self.name)) d = Animal("Hequan") Animal.talk() d.talk() d.walk() d.habit meat is talking meat is talking is talking Hequan habit is xxoo
私有属性 __
self.__num=num
经典类: 深度有限
新式类:广度优先
类的特殊成员
- __doc__ 打印注释
- __module__ 表示当前操作的对象在那个模块
- __class__ 表示当前操作的对象的类是什么
- __init__ 构造方法,通过类创建对象时,自动触发执行
- __del__ 析构方法,当对象在内存中被释放时,自动触发执行。执行完成后,统一销毁。
- __call__ 对象后面加括号,触发执行
- __dict__ 查看类或对象中的所有成员、
- __new__ \ __metaclass__ 类的生成 调用 顺序依次是 __new__ --> __call__ --> __init__
反射
通过字符串映射或修改程序运行时的状态、属性、方法
- hasattr
- getattr
- setattr
- delattr
if __name__=="__main__":
server = WebServer(‘localhost‘,3306)
if hasattr(server,sys.argv[1]):
func = getattr(server,sys.argv[1]) ##获取执行后面加的值 如 start
func()
本文出自 “何全” 博客,请务必保留此出处http://hequan.blog.51cto.com/5701886/1886936
时间: 2024-10-10 06:16:31