• python 成员


    一.成员

    1.实例变量 对象.属性=xxxx

    1 class Person:
    2     def __init__(self,name,id,gender,birth):
    3         self.name = name
    4         self.id = id
    5         self.gender = gender
    6         self.birth = birth
    7 
    8 p = Person('哈哈','10086','不详','1990-12-15')
    9 print(p.birth)   #p.birth就是实例变量

    2.类变量  最好用类.变量 ,对象.变量也能用

     1 class Person:
     2 
     3     country = '大清'  类变量
     4 
     5     def __init__(self,name,gender):
     6         self.name = name
     7         self.gender = gender
     8 
     9 r = Person('张三','')
    10 r1 = Person('李四', '')
    11 
    12 print(r.name)
    13 print(r.gender)
    14 print(r.country)  对象.类变量
    15 print(Person.country) 类.类变量

    3.实例方法

     1 class Computer:
     2 
     3     # 实例方法
     4     def play(self):
     5         print('电脑可以扫雷')
     6 
     7     # 在定义实例方法的时候. 必须给出一个参数self
     8     # 形参的第一个参数, 自动的把对象给传递进来
     9     def work(self):
    10         # print(self)
    11         print('电脑用来工作')
    12 
    13 c = Computer()
    14 c.work()  # 调用的时候不需要手动给出self

    4.类方法

     1 class Preson:
     2 
     3     # 实例方法
     4     def chi(self):
     5         print('人会吃')
     6     @classmethod  # 装饰器. 此时这个方法是一个类方法
     7     def he(cls):  # 此时接受到的cls是类名
     8         print('人会喝')
     9 
    10 
    11 # 用对象访问
    12 p = Preson()
    13 p.he()  # 在调用类方法的时候. 默认的把类名传递给类方法
    14 
    15 # 类方法一般用类名去访问
    16 Preson.he()

    5.静态方法

     1 class Person:
     2 
     3     @staticmethod
     4     def yue():
     5         print('看见我就是静态方法')
     6 
     7 
     8 # 静态方法可以使用对象访问. 也可以使用类名访问. 但是一般推荐使用类名访问
     9 p = Person()
    10 p.yue()
    11 
    12 # 推荐使用类名访问
    13 Person.yue()

    6.属性

     1 class Preson:
     2     def __init__(self,name,gender,birth):
     3         self.name = name
     4         self.gender = gender
     5         self.birth = birth
     6 
     7     # 年龄 -> 应该是算出来的. 而不是直接存储的
     8     @property  # 把一个方法更改成一个属性, 每次拿属性的时候会自动的去执行这个风法
     9                 # 方法的返回值就是属性值
    10     def age(self):
    11         return 2018-self.birth
    12 
    13 p1 = Preson('wusir','未知',2000)
    14 print(p1.age)  # 看着像一个变量一样使用. 实际上这里是调用的一个方法
    15 print(p1.age)
    16 
    17 # p1.age = 26  # 不可以赋值, 因为age是一个方法不是变量 方法不能进行赋值操作

    7.私有

     1 class Person:
     2 
     3     _qie = '潘潘'  # 类变量
     4 
     5     def __init__(self,name,mini):
     6         self.name = name
     7         self._mini =mini  # 私有内容 实例变量
     8 
     9     def gaosu(self):
    10         print(f"把秘密告诉了太白, 第二天所有人都知道了{self._mini}")
    11         # print(Person.__qie)  # 私有的类变量只能在类中调用
    12 
    13     def __yue(self):  # 私有的实例方法
    14         print('我要和宝宝约')
    15 
    16 
    17 p = Person('wusir','和嫂子的故事')
    18 # print(p.__mimi) # 私有的内容只能在类里面调用
    19 p.gaosu()
  • 相关阅读:
    myfocus官方网站已经挂掉,相关下载已经从googlecode转到网盘
    [综合]visio2013安装提示找不到Office.zh_cnofficeMUI.mis officemui.xml
    技巧分享:解决Word 2010当中“分页符”造成的空白行
    房贷计算器代码2.0
    房贷计算器代码
    图解-JS普通函数跟箭头函数中this的指向问题
    完全基于net core容器的超级轻量化的Quartz,支持类似net core mvc的过滤器,附过滤器实现源码
    net下的高性能轻量化半自动orm+linq的《SqlBatis》
    轻量级ORM《sqlcommon》第一个版本发布了!!!
    从0开始编写dapper核心功能、压榨性能、自己动手丰衣足食
  • 原文地址:https://www.cnblogs.com/beargod/p/10196447.html
Copyright © 2020-2023  润新知