Python类与对象
- 调用类方法:
class Fruit: def __init__(self): self.__color="rad" if __name__ == "__main__": apple=Fruit() print(apple._Fruit__color
- self有无的问题(指的是对象本身)
- 所以,从静态方法的使用中可以看出,我们不会访问到 class 本身 – 它基本上只是一个函数,在语法上就像一个方法一样,但是没有访问对象和它的内部(字段和其他方法),相反 classmethod 会访问 cls, instancemethod 会访问 self。
- _init__()是python的一个构造方法,在定义类时,用于初始化的一些操作;它能实现的功能及原理相对来讲也是比较简单一点,就是在实例化该类时,自动执行__init__()方法定义的内容;但是注意__init__()一般不用户返回return;
- __call__()方法能够让类的实例对象,像函数一样被调用;
>>> >>> class A(object): def __call__(self, x): print '__call__ called, print x: ', x >>> >>> a = A() >>> a('123') __call__ called, print x: 123 >>>
看a('123')这是函数的调用方法,这里a实际上是类对象A的实例对象,实例对象能想函数一样传参并被调用,就是__call__()方法的功能;
- 如果__new__()和__init__()函数时类的构造函数(即在类实例化时自动执行函数中定义的内容),那么__del__()是类的析构函数,是python垃圾回收机制的实际应用,当类的所有引用都被删除后,该类就会被系统从内存中删除,注意是所有的引用都被删除哦,而不是每一次删除;将D()实例化对象赋值给d,后d2,d3都是指向D()的这次实例化对象,删除d和d2的引用都不会触发__del__()函数,最后一个d3的引用被删除,就会触发__del__(),此时D()的这一次实例化的对象就被清除;
- list1.append(Geese)即可连续创建类的对象
- 定义空函数用pass代替未完成代码
- 所以,
if __name__ == '__main__'
的意思是:当.py文件被直接运行时,if __name__ == '__main__'
之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'
之下的代码块不被运行。 - 内部类的调用
class MyOuter: age=18 def __init__(self,name): self.name=name @classmethod def outer_class_method(cls): print('我是外部类的类方法') class MyInner: def __init__(self,inner_name): self.inner_name=inner_name def inner_method(self): print('我是内部类的对象方法') MyOuter.outer_class_method() out=MyOuter('lqz') inner=out.MyInner('lqz_inner') inner.inner_method()
- Python的format函数使用详解 https://blog.csdn.net/it_python/article/details/81037078
posted on 2019-09-07 19:33 ybl20000418 阅读(110) 评论(0) 编辑 收藏 举报