面向对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。

类的成员

1.字段

静态字段和普通字段

# class foo:
#     country = ‘中国‘            # 静态字段,属于类,代码加载的时候已经创建
#     def __init__(self,name):
#         self.name = name       #普通字段,属于对象
# 普通字段对象只能用对象访问
# 静态字段用类访问(尽量避免通过对象使用)
hn = foo(‘河南‘)
hb = foo(‘河北‘)
print(foo.country)
内存中存储方式:
静态字段在内存中只保存一份
普通字段在每个对象中都需要保存一份
静态字段应用场景:
通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段

2.方法

1.普通方法: 至少一个self, 对象调用执行
2.静态方法: 任意参数, 类调用执行
3.类方法 : 至少一个cls,类调用执行
对于所有的方法,均属于类中,所以在内存中只保存一份
class Foo:
    def __init__(self,name):
        self.name  = name
#普通方法,对象调用执行,属于类
    def num(self):
        print(self.name)
#把不需要通过对象调用执行的普通方法做一些改动,变成静态方法(就是python中的普通函数),通过类直接调用执行
    @staticmethod
    def show(arg):
        print(arg,‘静态方法‘)
#类方法,不需要传参数,
    @classmethod
    def clas(cls):
        a = cls(‘a‘)
        a.num()
        print(cls)


Foo.show(‘这是‘)
obj = Foo(‘这是普通方法‘)
obj.num()
Foo.clas()

3.属性

 



以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器