Python_实例属性的增删改查

class YoungMan:
    def __init__(self,name):
        self.name = name
    def play_ball(self,kind_of_ball):
        print("%s is playing %s" %(self.name,kind_of_ball))

man1 = YoungMan("James")
man1.play_ball("basketball")
print(man1.__dict__)

#查属性
print(man1.name)
print(man1.play_ball)

#增加数据属性
man1.age =18
print(man1.__dict__)
print(man1.age)
#增加方法属性(证明能加,但是不会这样做,多余)
def method_in_init(self):
    print("我是来自实例的方法属性,我是%s 实例" %self)
#调用的是实例自己的方法,不是调用类的方法,所以不会自动传入self值(实例本身)
man1.metho_in_init = method_in_init
man1.metho_in_init(man1)
print(man1.__dict__)

#
man1.name = "Mango"

#
del man1.age
#定义一个类,只当作一个 作用域去用,类似于c语言中的结构体
class MyData:
    pass

x = 11
y = 22
MyData.x = 1
MyData.y = 2

print(x,y)
print(MyData,x,MyData.y)
print(MyData,x+MyData.y)

 

作用域

例子一

class YoungMan:
    country = 'China'
    def __init__(self,name):
        self.name = name
    def play_ball(self,kind_of_ball):
        print("%s is playing %s" %(self.name,kind_of_ball))

man1 = YoungMan("James")
print(man1.country)
#相当于在__init__里增加了一个country属性,跟类的属性无关!!!
man1.country = 'Japan'
print(man1.country)
print(YoungMan.country)

 

例子二

country = "-------中国---------"
class YoungMan:
    country = 'China'
    def __init__(self,name):
        self.name = name
        #可以正常输出,因为country就是一个普通的变量,局部没找到,就去全局找!!!假如是man1.country 或者 YoungMan.country才是属性!!!
        print("我是在__init__里 一个普通变量country......",country)

    def play_ball(self,kind_of_ball):
        print("%s is playing %s" %(self.name,kind_of_ball))

man1 = YoungMan("James")

#相当于在__init__里增加了一个country属性,跟类的属性无关
man1.country = 'Japan'
print("实例的country:",man1.country)
print("类的country:",YoungMan.country)

 

例子三

class YoungMan:
    list_list = ['a','b']

    def __init__(self,name):
        self.name = name

    def play_ball(self,kind_of_ball):
        print("%s is playing %s" %(self.name,kind_of_ball))

man1 = YoungMan("James")
#下面的代码是会在__init__单独加一个'c'呢,还是在类的list_list属性里加多一个'c'呢
man1.list_list.append('c')
print(YoungMan.list_list)

 

posted on 2019-08-12 22:11  詹生  阅读(665)  评论(0编辑  收藏  举报

导航