Python 第一个名称=字符串 elif len(分割字符串)=2: 名字、姓氏=拆分字符串 elif len(分割字符串)=3: 第一名、中间名、姓氏=拆分字符串 其他:#长度(分割字符串)>3: 第一个\u名称=拆分\u字符串[0] last_name=拆分_字符串[-1] middle_name=”“.join(拆分字符串[1:-2]) self.first\u name=first\u name self.middle\u name=middle\u name self.last\u name=last\u name

Python 第一个名称=字符串 elif len(分割字符串)=2: 名字、姓氏=拆分字符串 elif len(分割字符串)=3: 第一名、中间名、姓氏=拆分字符串 其他:#长度(分割字符串)>3: 第一个\u名称=拆分\u字符串[0] last_name=拆分_字符串[-1] middle_name=”“.join(拆分字符串[1:-2]) self.first\u name=first\u name self.middle\u name=middle\u name self.last\u name=last\u name,python,sqlalchemy,python-elixir,Python,Sqlalchemy,Python Elixir,表达部分如下: @name.expression def名称(cls): f=cls.first\U名称 m=cls.middle\u名称 l=cls.姓氏 返回f+“”+m+“”+l User.name它类似于@property def name(self):return foo#尝试在不使用此语句的情况下运行查询User.name==User,因为您要求的是property@rob.alarcon: ;) 查询运行得很好,没有多余的行。但是,当我执行查询时,我特别希望使用ORM在查询中创建一

表达部分如下:

@name.expression
def名称(cls):
f=cls.first\U名称
m=cls.middle\u名称
l=cls.姓氏
返回f+“”+m+“”+l

User.name它类似于@property def name(self):return foo#尝试在不使用此语句的情况下运行查询User.name==User,因为您要求的是property@rob.alarcon: ;) 查询运行得很好,没有多余的行。但是,当我执行查询时,我特别希望使用ORM在查询中创建一个可用的属性。
\uuuu set\u name\uuuu
现在是Python 3.6User.name中的一个保留特殊方法名。它类似于@property def name(self):return foo#尝试在不使用此语句User.name==User的情况下运行查询,因为您正在请求property@rob.alarcon: ;) 查询运行得很好,没有多余的行。但是当我进行查询时,我特别希望使用ORM在查询中创建一个可用的属性。
\uuu set\u name\uuu
现在是Python 3.6中保留的特殊方法名称。当您从Elixir迁移到Sqlalchemy时,我相信您可能已经混淆了我的问题。我想使用name,就好像它是一个class属性一样。有一个SQA的例子,但我希望它在长生不老药完成。我相信恰当的使用与ColumnProperty有关。然而,文档本身并不适用。Google有些东西,但它不处理字符串。
\uu set\u name\uu
现在是Python 3.6中的保留方法名。当您从Elixir迁移到Sqlalchemy时,我相信您可能已经混淆了我的问题。我想使用name,就好像它是一个class属性一样。有一个SQA的例子,但我希望它在长生不老药完成。我相信恰当的使用与ColumnProperty有关。然而,文档本身并不适用。Google有些东西,但它不处理字符串。
\uuuuu set\u name\uuuu
现在是Python 3.6中的保留方法名
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, DateTime, String
from datetime import datetime

Base = declarative_base()
class User(Base):
    first_name = Column('first_name', String)
    middle_name = Column('middle_name', String)
    last_name = Column('last_name', String)

    def __get_name__ (self):
        first_name = self.first_name if self.first_name is not None else ""
        middle_name = self.middle_name if self.middle_name is not None else ""
        last_name = self.last_name if self.last_name is not None else ""
        return " ".join((first_name, middle_name, last_name)).strip()

    def __set_name__ (self,string):
        first_name = ""
        middle_name = ""
        last_name = ""
        split_string = string.split(' ')
        if len(split_string) == 1:
            first_name = string
        elif len(split_string) == 2:
            first_name, last_name = split_string
        elif len(split_string) == 3:
            first_name, middle_name, last_name = split_string
        else: #len(split_string) > 3:
            first_name = split_string[0]
            last_name = split_string[-1]
            middle_name = " ".join(split_string[1:-2])
        self.first_name = first_name
        self.middle_name = middle_name
        self.last_name = last_name

    name = property(__get_name__,__set_name__)
In [13]: User.first_name
Out[13]: Column('first_name', String(), )

In [14]: User.name
Out[14]: <property object at 0x26fef70>
In [16]: u1 = User()

In [17]: u1.name = "first middle last"

In [18]: u1.name
Out[18]: 'first middle last'

In [19]: u1.first_name
Out[19]: 'first'