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 面向对象的主要内容,如果未能解决你的问题,请参考以下文章