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. 嵌套(建模)

猜你喜欢

转载自www.cnblogs.com/JinMuBaoBao/p/9551560.html
今日推荐