# 属性的初识# class Person:##     def __init__(self,name,hight,weight):#         self.name = name#         self.__hight = hight#         self.__weight = weight##     @property#     def bmi(self):#         return '%s 的bmi 值%s' %(self.name,self.__weight / self.__hight ** 2)

# p1 = Person('大阳哥',1.68,70)# # print(p1.bmi())# print(p1.bmi)# # 属性  : 将一个方法  伪装成一个 属性,在代码的级别上没有本质的提升,但是让其看起来跟合理.# print(p1.name)# p1.name = 'alex'# print(p1.name)

# 属性的改class Person:    def __init__(self,name,age):        self.name = name        if type(age) is int:            self.__age = age        else:            print( '你输入的年龄的类型有误,请输入数字')    @property    def age(self):        return self.__age

    @age.setter    def age(self,a1):        '''判断,你修改的年龄必须是数字'''        if type(a1) is int:            self.__age = a1        else:            print('你输入的年龄的类型有误,请输入数字')

    @age.deleter    def age(self):        del self.__age

p1 = Person('帅哥',20)print(p1.age)# print(p1.__dict__)# p1.age = 23# print(p1.age)del p1.age

# property : 类似于bmi这种,area,周长....  ***# @age.setter  **# @age.deleter *

# 类方法

# class A:#     def func(self):  # 普通方法#         print(self)##     @classmethod  # 类方法#     def func1(cls):#         print(cls)

# a1 = A()

# a1.func()# A.func(a1)

# 类方法: 通过类名调用的方法,类方法中第一个参数约定俗称cls,python自动将类名(类空间)传给cls.# A.func1()

# a1 = A()# a1.func1()  # 对象调用类方法,cls 得到的是类本身.

#类方法的应用场景:#1, 类中 有些方法是不需要对象参与.

# class A1:#     name = 'alex'#     count = 1##     @classmethod#     def func1(cls):  # 此方法无需对象参与#         return cls.name + str(cls.count + 1)

# A.func1(111) 不可取# a1 = A()# print(a1.func1())# print(A.func1())

# 静态方法

# 2, 对类中的静态变量进行改变,要用类方法.

# 3,继承中,父类得到子类的类空间.

# class A:#     age = 12#     @classmethod#     def func1(cls):  # 此方法无需对象参与#         # print(cls)#         # 对B类的所有的内容可以进行修改.#         print(cls.age)#         # return cls.name + str(cls.count + 1)## class B(A):#     age = 22# B.func1()

# 不通过类方法,想让我的父类的某个方法得到子类的类空间里面的任意值.# class A:#     age = 12##     def func2(self):#         print(self)  # self 子类的对象,能得到子类 空间的任意值## class B(A):#     age = 22## b1 = B()# b1.func2()

# 静态方法:class A:

    @staticmethod    def login(username, password):        if username == 'alex' and password == 123:            print('登录成功')        else:            print('登录失败...')

A.login('alex',1234)

# def login(username,password):#     if username == 'alex' and password == 123:#         print('登录成功')#     else:#         print('登录失败...')## login('alex',1234)

# 1,代码块.清晰.# 2,复用性.

属性,类方法@classmethod的更多相关文章

  1. python-静态方法staticmethod、类方法classmethod、属性方法property

    Python的方法主要有3个,即静态方法(staticmethod),类方法(classmethod)和实例方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def  ...

  2. 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别

    [面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...

  3. python - class类 (二) 静态属性/类方法/静态方法

    静态属性: #静态属性 = 数据属性 (@property) class mianji(): def __init__(self,x,y): self.x = x self.y = y #类的函数方法 ...

  4. python的类的 静态属性 类方法 静态方法

    一.静态属性 静态属性说的就是数据属性 1.定义一个房间的类,求下这个房间的面积 class Room: def __init__(self,name,ower,width,length,heigh) ...

  5. python__基础 : 类属性,类方法,静态方法

    类属性  定义在类里面,方法外面的属性,一般属于这个类,如下面的 num 就是类属性: class Test: num = 类属性用 实例.类属性   或者 类.类属性 都可以访问, 如 a = Te ...

  6. Python面向对象之类属性类方法静态方法

    类的结构 实例 使用面向对象开发时,第一步是设计类: 当使用 类名() 创建对象时,会自动执行以下操作: 1.为对象在内存中分配空间--创建对象: 2.为对象的属性 设置初始值--初始化方法(init ...

  7. python类方法@classmethod与@staticmethod

    目录 python类方法@classmethod与@staticmethod 一.@classmethod 介绍 语法 举例 二.@staticmethod 介绍 语法 举例 python类方法@cl ...

  8. 静态方法staticmethod和类方法classmethod

    静态方法staticmethod和类方法classmethod 一.类方法classmethod 把一个方法变成一个类中的方法,这个方法可以直接利用类来调用,不需要依托任何的对象,即不需要实例化也可以 ...

  9. Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

    一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面 ...

随机推荐

  1. Linux运维常用150个命令

    Linux运维常用150个命令 转载自:www.cnblogs.com/bananaaa/p/7774467.html 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更 ...

  2. chapter02 K近邻分类器对Iris数据进行分类预测

    寻找与待分类的样本在特征空间中距离最近的K个已知样本作为参考,来帮助进行分类决策. 与其他模型最大的不同在于:该模型没有参数训练过程.无参模型,高计算复杂度和内存消耗. #coding=utf8 # ...

  3. [LeetCode&Python] Problem 461. Hamming Distance

    The Hamming distance between two integers is the number of positions at which the corresponding bits ...

  4. vue 钩子

    生命周期总结 这么多钩子函数,我们怎么用呢,我想大家可能有这样的疑问吧,我也有,哈哈哈. beforecreate : 举个栗子:可以在这加个loading事件 created :在这结束loadin ...

  5. C# 使用ZXing.NET生成一维码、二维码

    以上图片是本示例中的实际运行效果,在生活中我们的一维码(也就是条形码).二维码 使用已经非常广泛,那么如何使用c#.net来进行生成一维码(条形码).二维码呢? 使用ZXing来生成是非常方便的选择, ...

  6. 南阳oj-ASCII码排序-用了一个晚上

    #include <iostream> #include <sstream> #include <stdio.h> #include <string> ...

  7. MySQL--禁用账号和设置账号有效期

    ======================================================================= MySQL5.5/5.6版本 在MySQL 5.7 版本 ...

  8. treeql 基于rest 标准的接口开发协议

    treeql 可以让我们按照数据库的关系模型,生成一个tree 模型的json 数据,基于rest 标准, 从设计上,来说还是很不错的,但是从长远发展来说graphql 应该会更好,也有相关的比较 参 ...

  9. oracle C# 访问

    使用oracle的odp.net 进行oracle数据库的访问对于进行oracle数据库的开发来说是比较方便的,使用的方式与ADO.net 是一致的. 一下为使用的测试 1. 安装必要的oracle ...

  10. android 学习过程中登陆失效的个人理解

    今天在学习的过程中,要做登陆失效的功能,所以就找了些资料.好好看了一下.研究了一番,慢慢的做出来了! 比方:你在一个手机端登陆了账号,在另外的一个手机端也登陆了账号,此时.前一个手机端的账号会提示登陆 ...