类里面的属性和方法:
属性:
类属性:
直接定义在类里面的变量,叫做类属性,类属性可以通过类去访问,也可以通过对象访问
公有属性: 不管在类里面还是类外面可以访问。
私有属性: 两个下划线开头的属性叫做私有属性,只能在类里面访问,在类外部是无法使用的
实例属性:
实例属性定义:对象.属性名 = 属性值
实例属性只能通过对象去访问。
方法:
实例方法:
第一个参数:self,self代表的是实例对象本身
只能使用实例对象来调用
实例方法一般是以对象为主体去调用的。
类方法:
第一个参数:cls,cls代表的是类本身。
可以使用类调用,也可以使用对象调用。
类方法一般是以类为主体去调用的。
静态方法:
没有必须要定义的参数
可以使用类调用,也可以使用对象调用。
静态方法调用的时候,内部不会使用到对象和类相关的属性。
import random
# #类属性:直接定义在类里面的变量,叫做类属性,类属性可以通过类去访问,也可以通过对象访问
# 公有属性: 不管在类里面还是类外面可以访问。
# 私有属性: 两个下划线开头的属性叫做私有属性,只能在类里面访问,在类外部是无法使用的
class MyClass:
attr = 100 # 公有属性
__attr = 200 # 私有属性
# #实例属性:
# 实例属性定义:对象.属性名 = 属性值
# 实例属性只能通过对象去访问。
# 方法:
# 实例方法:
# 第一个参数:self,self代表的是实例对象本身
# 只能使用实例对象来调用
# 实例方法一般是以对象为主体去调用的。
def func(self):
# 要随机生成一个手机号码
phone = self.random_phone()
print("这个是实例方法")
print("获取私有属性的值{}".format(MyClass.__attr))
# 类方法:
# 第一个参数:cls,cls代表的是类本身。
# 可以使用类调用, 也可以使用对象调用。
# 类方法一般是以类为主体去调用的。
@classmethod
def cls_func(cls):
print("这个是类方法")
# 静态方法:
# 没有必须要定义的参数
# 可以使用类调用, 也可以使用对象调用。
# 静态方法调用的时候,内部不会使用到对象和类相关的属性。
@staticmethod
def sta_func():
print("这个是静态方法")
@staticmethod
def random_phone():
"""随机生成手机号码"""
phone = "13"
for i in range(9):
phone += str(random.randint(0, 9))
return phone
print(MyClass.attr)
# 类外面无法使用私有属性
# print(MyClass.__attr)
m = MyClass()
m.func()
结果: