python 面向对象

Posted AndyStrack

tags:

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

1. 成员

成员共分为三类:

1变量:

  - 实例变量(字段)
    - 公有实例变量(字段)
    - 私有实例变量(字段)
  - 类变量(静态字段)
    - 公有类变量(静态字段)
    - 私有类变量(静态字段)

class Student:
    school = "蓝翔"       #公有的类变量
    __grade = "一年级"    #私有的类变量
    def __init__(self,name):
        self.name = name    #公有的实例变量
        self.__age = 18    #私有的实例变量

stu = Student("Tom")
print(stu.name)
# print(stu.__age)      #私有的实例变量不能在类外部访问
print(Student.school)
# print(Student.__grade)    #私有的类变量不能在类外部访问

 

2.方法

  实例方法
    有个self参数


  静态方法 : 如果方法无需使用对象中封装的值,那么就可以使用静态方法

    方法上边有@staticmethod
    参数可有可无


  类方法 : 如果在方法中会使用到当前类,那么就用类方法

    方法上边有@classmethod
    有个cls参数

class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def dyname(self):       #实例方法
        print(self.name)
    @staticmethod
    def dy(x):              #静态方法:如果方法无需使用对象中封装的值,那么就可以使用静态方法
        print("哈哈哈",x)
    @classmethod
    def dy2(cls):           #类方法:如果在方法中会使用到当前类,那么就用类方法
        print(cls)
stu = Student("Tom",18)
stu.dyname()
Student.dy("s15")
Student.dy2()

3.属性

  方法上有@property

  只有一个self参数 

  调用时无需加括号 对象.方法

  对于简单的方法,当无需传参且有返回值时可以使用 

class Student:
    def __init__(self):
        pass

    @property
    def shuxing(self):
        return 1
obj = Student()
print(obj.shuxing)



2. 嵌套(建模)

 













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

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

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

python:第二部分:面向对象:面向对象object orinted

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

Python 面向对象

面向对象编程其实很简单——Python 面向对象(初级篇)