栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python高级编程2-python小知识点

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python高级编程2-python小知识点

文章目录
  • 一、绑定方法与非绑定方法
    • (一)绑定方法
    • (二)非绑定方法
  • 二、反射

一、绑定方法与非绑定方法 (一)绑定方法
  1. 绑定给对象的方法,我们直接使用def定义的方法,在我们使用到这个方法的时候,会把对象的当成第一个参数传递。由对象来调用,会自动把对象当成第一个参数传入。
class People:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex
        
    def tell_into(self):  #定义一个查看对象的方法,self是创建的对象
        print(self.name,self.age,self.sex)
        
    def print_count(self):  #self是创建的对象
        print(People.count)
  1. 绑定给类的方法
    • 绑定给类的方法:我们可以使用对象和类访问,但是会把类当作第一个参数传入
class People:
    count = 0
    
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex
        
    def tell_into(self):  #定义一个查看对象的方法
        print(self.name,self.age,self.sex)
          
    @classmethod  #用该方式调用类方法
    def print_count(cls):  #此处cls是一个类
        print(cls.count)  

如果的需要用到self比较多,就用绑定给对象的方法,否则就用绑定给类的方法

(二)非绑定方法

​ 没有自动传值这一说法,就相当于在类里边定义了一个方法,不需要传任何值

class People:
    
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex
    
    @staticmethod   #非绑定方法,不需要传参数
    def fun():
        print(1 + 1)
        print(2 + 2)
        print(1 + 3)
        
二、反射

​ 通过字符串的形式操作对象

class Person:
    
    def __init__(self, name,age):
        self.name = name
        self.sex = age
        
    def show(self):
        print(f"姓名{self.name}年龄{self.age}")
        
        
user_object = Person("小红", 18)

#detattr(对象, "成员")
v1 = getattr(user_object, "name")
print(v1)
#运行结果:小红


#setattr(对象,"成员",值)
setattr(user_object, "name","小蓝")
v2 = getattr(user_object, "name")
print(v2)
#运行结果:小蓝

#hastattr(对象,"成员"):判断是否存在
print(hasattr(user_object, "name"))
#运行结果:True

(v2)
#运行结果:小蓝

#hastattr(对象,“成员”):判断是否存在
print(hasattr(user_object, “name”))
#运行结果:True

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号